gpt4 book ai didi

asp.net - 为什么我的 ASP.NET MVC 持久身份验证 cookie 不起作用?

转载 作者:行者123 更新时间:2023-12-02 05:27:50 24 4
gpt4 key购买 nike

我使用的是 ASP.NET MVC 3,带有表单例份验证(基于通过 file->new 获得的修改后的普通帐户代码)。

当您登录时,我将使用

设置身份验证 cookie
FormsAuthentication.SetAuthCookie(userName, true);

所以这应该设置一个持久的cookie。但是,如果我关闭浏览器并重新打开,当我浏览该网站时,我将被迫再次登录!我可以使用 chrome 开发工具看到 cookie (.ASPXAUTH) 正在创建,并且当我关闭浏览器时不会被删除,那么发生了什么?

我的 web.config:

<authentication mode="Forms">
<forms loginUrl="~/Account/LogIn" timeout="10000"/>
</authentication>

我正在本地 IIS 下测试这个是否有任何区别。

最佳答案

我最好使用身份验证票证为自己创建一个 cookie。SetAuthCookie 在后台创建一个身份验证票证。您是否尝试过制作自己的授权票?它可以让您在上面存储额外的数据

这是一个例子:

// create encryption cookie         
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1,
userName,
DateTime.Now,
DateTime.Now.AddDays(90),
createPersistentCookie,
string.Empty);

// add cookie to response stream
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
System.Web.HttpCookie authCookie = new System.Web.HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
if (authTicket.IsPersistent)
{
authCookie.Expires = authTicket.Expiration;
}
System.Web.HttpContext.Current.Response.Cookies.Add(authCookie);

希望这有帮助。

关于asp.net - 为什么我的 ASP.NET MVC 持久身份验证 cookie 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8852057/

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