浏览器关闭后 cookie 持续存在所需的具体步骤是什么?目前我有:
createPersistentCookie
设置为true
事件LoggedIn
。- 指定的机器密钥。
- 表单滑动到期设置为
true
.
只要浏览器打开,用户就会保持登录状态,但一旦关闭,不管多久,用户都需要重新登录。我错过了什么?
编辑:
我浏览了 marapet 指出的文章(见下面的评论),它让我对这张票是否确实有 IsPersistent 标志感兴趣,它确实有。解密后的票据是这样的:
System.Web.Security.FormsAuthentication.Decrypt(Request.Cookies[System.Web.Security.FormsAuthentication.FormsCookieName].Value)
{System.Web.Security.FormsAuthenticationTicket}
CookiePath: "/"
Expiration: {19/08/2010 17:27:14}
Expired: false
IsPersistent: true
IssueDate: {19/07/2010 17:27:14}
Name: "alex"
UserData: ""
Version: 2
所有的细节都是正确的,和我在 LoggedIn 事件中设置的相对应。更多的 cookie 值我可以直接从 cookie 中检索,与这个相同。然而,一旦我关闭浏览器,cookie 就会丢失。
然而,我注意到的是,携带票的 cookie 出于某种原因重置了日期。首先,我无法覆盖 web.config 中的设置,因此在 LoggedIn 事件结束时,它的 Expires 属性是发布日期后 4000 分钟,而不是我以编程方式设置的月份。然后在页面加载后,我使用 FormsAuthentication.FormsCookieName 检索的 cookie 的 Expires 属性为 01/01/0001。我想也许这就是问题所在?任何想法将不胜感激。
编辑#2: 我正在更改标题和标签以包含会话,因为它与问题/解决方案相关