asp.net - 表单例份验证随 session 过期

标签 asp.net asp.net-mvc session authentication cookies

每当用户登录 ASP.NET MVC 应用程序时,我都会像这样设置 Forms auth cookie:

var authTicket = new FormsAuthenticationTicket(
    1, //version
    user.Email, // user name
    DateTime.Now, //creation
    DateTime.Now.AddDays(1), //Expiration
    persistanceFlag, //Persistent
    userData);

var encTicket = FormsAuthentication.Encrypt(authTicket);
var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
Response.Cookies.Add(authCookie);

在检查 cookie 时说,Firebug 我希望 cookie 的到期时间是从现在起 24 小时。
相反,Firefox 报告 cookie 随 session 过期。
我不明白。

firebug

如何控制cookie的生命周期?

目标是不要求用户每天早上登录。

最佳答案

我对the documentation的理解是您对预期行为的正确性以及该设置 persistanceFlagtrue应该将 cookie 的到期时间设置为与 token 的到期时间相同的值。

但是,值得注意的是,即使 cookie 似乎没有过期, token 过期时间也设置正确。这意味着一旦过期,尽管客户端仍会将 cookie 发送到服务器,但服务器不会接受它作为一种身份验证形式,用户将不得不重新进行身份验证。有鉴于此,我不确定 cookie 在超时过后不会过期是否重要(即使它看起来确实应该如此)。

关于asp.net - 表单例份验证随 session 过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35133187/

相关文章:

c# - Azure 数据库的 ASP.NET 数据库连接问题

asp.net-mvc - ASP.NET MVC Web.Api 路由 - 真实世界的例子

c# - ASP.NET MVC 创建一个包含每个用户列表的变量?

c# - 注册用户的激活邮件 MVC

asp.net - html 中的页面设置信息或由 asp.net 创建的页面

asp.net - 仅显示安全内容

asp.net - ASP.NET 中的负载平衡产生的问题

c# - IIS session 在发布 Web 上丢失

session - ActiveMQ session 的AUTO_ACKNOWLEDGE属性影响

php - 如果用户在一段时间内不活动,则强制注销用户