ASP.NET表单身份验证auth cookie始终是持久的

时间:2017-05-25 17:22:09

标签: c# asp.net-mvc cookies remember-me form-authentication

我正在尝试使用 Asp.Net表单身份验证在我的项目的登录中记住我的功能。问题是一旦用户登录,即使浏览器关闭并重新打开,他仍然保持登录状态。似乎Auth cookie始终是持久的,无论用户是否已经检查过记住我的选项。我不知道我想做什么?谁能指导我?

我猜通常这行代码足以实现我想要的目标:

 FormsAuthentication.SetAuthCookie(model.Username, model.RememberMe);

2 个答案:

答案 0 :(得分:0)

这可以通过Web.config

中的timeout属性来控制
<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>

答案 1 :(得分:0)

如果你在Web.config中添加身份验证模式会很有帮助,如@Matt所示。无论如何,如果您观察通过记住我拨打的cookie,并且&amp;你会注意到以下几点: -

记住我✕:Auth Cookie Expires属性:Session  (会话cookie)

记住我✓:验证Cookie Expires属性:{ UTC Time }(持久性Cookie)

只要浏览器保持活动状态,

会话Cookie 就会持续。因此,只有在您关闭浏览器窗口(不是标签)而不是持久性Cookie 之后才会处理Cookie。

您可以了解更多有关cookies&amp; amp;的概念浏览器行为如下: -

Why Doesn't Closing A Tab Delete A Session Cookie?

HTTP Cookie Wikipedia