FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1,
"ticketName",
DateTime.Now,
DateTime.Now.AddMinutes(60),
false,
"{UserNAme:'sanmao'}"
);
string token = FormsAuthentication.Encrypt(ticket);
HttpCookie userCookie = new HttpCookie(FormsAuthentication.FormsCookieName, token);
Response.Cookies.Add(userCookie);
string url = FormsAuthentication.GetRedirectUrl(UserName, false);//擷取來源地址
Response.Redirect(url);
System.Web.HttpContext context = System.Web.HttpContext.Current;
// 取得使用者物件
System.Security.Principal.IPrincipal user = context.User;
// 取得使用者的角色數組
System.Web.Security.FormsIdentity fi = user.Identity as System.Web.Security.FormsIdentity;
// 取得使用者的票據
System.Web.Security.FormsAuthenticationTicket ticket = fi.Ticket;
// 建立使用者所擁有的角色數組
string roleString = ticket.UserData;
// 還原為字串數組
string[] roleArray = { roleString };//roleString.Split(',');
// 自己建立使用者物件
System.Security.Principal.GenericPrincipal principal
= new System.Security.Principal.GenericPrincipal(
user.Identity,
roleArray
);
// 讓系統使用我們的擁有角色的使用者物件
context.User = principal;
Response.Write(tt);