gpt4 book ai didi

asp.net-mvc-3 - FormsAuthentication cookie 不持久

转载 作者:行者123 更新时间:2023-12-02 01:15:59 26 4
gpt4 key购买 nike

我尝试使用以下代码(在 AccountController.cs 中)将 FormsAuthenticationTicket 保存到 cookie:

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket
(1, user.UserEmail, DateTime.Now,
DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes),
false, null);

string encTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName,
ticket.ToString());
HttpContext.Response.Cookies.Add(faCookie);

if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}

当我单步执行调试器时,一切似乎都很好。直到我到达 Application_AuthenticateRequest,我尝试在其中检索 cookie:

HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];

if (authCookie != null)
{
//do stuff here
}

当我查看 Cookies 集合时,那里什么也没有。我可以在 AccountController 代码中添加另一个正常的 cookie,它显示得很好。无论我是否包含 UserData,问题仍然存在,所以我认为这不是大小问题。

感谢您提供的任何见解。

最佳答案

cookie 的最大大小为 4096 字节。如果高于此值,则不会保存 cookie。

使用以下方法检查 Cookie 大小:

int cookieSize = System.Text.UTF8Encoding.UTF8.GetByteCount(faCookie.Values.ToString());

关于asp.net-mvc-3 - FormsAuthentication cookie 不持久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11266292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com