13

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

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

FormsAuthentication.SetAuthCookie("someusername", true);

我的 Web.Config 如下所示:

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

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

4

3 回答 3

16

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

丹·塞勒斯的网络日志

他说:

在 ASP.NET 2.0 中,持久性和基于会话的 cookie 的超时值由<forms/>元素上的 timeout 属性控制

因此,在我的示例中,持久性 cookie 将在 48 小时内过期。

于 2011-10-07T09:11:11.497 回答
3

timeoutauthentication在您的模块中提到:

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

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

希望能帮助到你。

于 2015-12-15T14:25:37.037 回答
-2

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

看看这里:

Cookie 与 FormsAuthentication.SetAuthCookie() 方法混淆

于 2011-10-07T00:55:27.477 回答