使用FormsAuthentication持久cookie超时

时间:2011-10-07 00:18:43

标签: asp.net cookies forms-authentication remember-me

我正在创建一些“记住我”功能,作为登录的一部分。

当我在登录过程中使用以下内容创建持久性cookie时:

FormsAuthentication.SetAuthCookie("someusername", true);

我的Web.Config如下所示:

<authentication mode="Forms">
  <forms loginUrl="~/sign-in" timeout="2880" />
</authentication>

在要求用户再次提供其登录详细信息之前,Cookie有效期有多长? 此外,是否/设置持久性cookie时使用的默认时间长度是什么?

3 个答案:

答案 0 :(得分:17)

由于这篇文章,我找到了我正在寻找的答案:

Dan Sellers's WebLog

他说:

  

在ASP.NET 2.0中,持久性和基于会话的超时值   Cookie由<forms/>元素

上的超时属性控制

所以在我的例子中,持久cookie将在48小时后到期。

答案 1 :(得分:3)

您的timeout模块中提及

authentication

<forms loginUrl="~/sign-in" timeout="2880" />

超时= “2880”的。这个2880值以分钟为单位给出。因此,如果你将2880除以60,你会得到 48小时,这是你问题的答案。用户必须在48小时到期后再次提供其登录凭据。

希望它有所帮助。

答案 2 :(得分:-2)

我相信持久性cookie无限期有效(除非用户当然清除其浏览器cookie)。 timeout属性只告诉表单身份验证保持会话活动的时间。

看看这里:

Cookie Confusion with FormsAuthentication.SetAuthCookie() Method