【发布时间】:2019-07-11 05:41:04
【问题描述】:
我已实现自定义身份验证,但成功登录后无法检索身份验证 cookie。
设置cookie:
HttpContext.Current.User = user;
Thread.CurrentPrincipal = user;
string userData = JsonConvert.SerializeObject(user);
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, user.Handle, DateTime.Now, DateTime.Now.AddMinutes(15), false, userData);
string encTicket = FormsAuthentication.Encrypt(authTicket);
HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
HttpContext.Current.Response.Cookies.Add(faCookie);
检索 cookie:
HttpCookie authCookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
user = JsonConvert.DeserializeObject<User>(authTicket.UserData);
}
问题在于HttpContext.Current.Request.Cookies 不包含FormsAuthentication.FormsCookieName 键并且authTicket 始终为空。
【问题讨论】:
-
由于您的项目基于 4.7.2 之后的 .NET Framework 版本,我建议您阅读 this 文章以了解 sameSite 设置。也许它会为你工作。
-
感谢您的帮助,但我早就停止了这个项目的工作。
标签: c# authentication cookies asp.net-mvc-5 identity