出于某种原因,我的身份验证cookie的UserData属性为空.这是代码:
var authCookie = FormsAuthentication.GetAuthCookie(userName,rememberUser.Checked); // Get the FormsAuthenticationTicket out of the encrypted cookie var ticket = FormsAuthentication.Decrypt(authCookie.Value); // Create a new FormsAuthenticationTicket that includes our custom User Data var newTicket = new FormsAuthenticationTicket(ticket.Version,ticket.Name,ticket.IssueDate,ticket.Expiration,ticket.IsPersistent,"userData"); // Update the authCookie's Value to use the encrypted version of newTicket authCookie.Value = FormsAuthentication.Encrypt(newTicket); // Manually add the authCookie to the Cookies collection Response.Cookies.Add(authCookie); FormsAuthentication.RedirectFromLoginPage(userName,rememberUser.Checked);
以下是我尝试访问它的方法:
if (HttpContext.Current.Request.IsAuthenticated ) { var authCookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName]; if (authCookie != null) { var authTicket = FormsAuthentication.Decrypt(authCookie.Value); string data = authTicket.UserData; // data is empty !!! } }