加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 浏览器关闭后的身份验证/会话cookie删除

发布时间:2020-12-15 19:25:09 所属栏目:asp.Net 来源:网络整理
导读:浏览器关闭后,Cookie需要保留哪些具体步骤?现在我有: createPersistentCookie在LoggedIn事件中设置为true. MachineKey指定. 窗体滑动过期设置为true. 只要浏览器打开,用户将保持登录状态,但一旦关闭浏览器,并且无需多长时间,用户将需要重新登录.我失踪了什
浏览器关闭后,Cookie需要保留哪些具体步骤?现在我有:

> createPersistentCookie在LoggedIn事件中设置为true.
> MachineKey指定.
>窗体滑动过期设置为true.

只要浏览器打开,用户将保持登录状态,但一旦关闭浏览器,并且无需多长时间,用户将需要重新登录.我失踪了什么

编辑:
我经历了马拉布塔指出的文章(见下面的评论),这使我对票是否确实有IsPersistent标志感兴趣.解密的票证如下所示:
System.Web.Security.FormsAuthentication.Decrypt(Request.Cookies时[System.Web.Security.FormsAuthentication.FormsCookieName].价值)
{} System.Web.Security.FormsAuthenticationTicket
CookiePath:“/”
到期日:{19/08/2010 17:27:14}
已过期:假
IsPersistent:true
IssueDate:{19/07/2010 17:27:14}
名称:“亚历克斯”
用户数据: ””
版本:2
所有的细节是正确的,对应于我在LoggedIn事件中设置的.我可以直接从cookie中获取更多的cookie值,与此相同.然而,一旦关闭浏览器,cookie就会丢失.

然而,我注意到的是,由于某种原因,携带车票的cookie的日期重置.首先,我无法覆盖web.config中的设置,所以在LoggedIn事件结束时,Expires属性是发布日期后的4000分钟,而不是我以编程方式设置的一个月.然后在页面加载后,我使用FormsAuthentication.FormsCookieName检索的Cookie具有01/01/0001的Expires属性.我想也许这是问题在哪里?任何想法都不胜感激.

编辑#2:
我正在更改标题和标签以包括会话,因为它原来与问题/解决方案相关

解决方法

所以我找到了解决方案,最终.事实证明,认证cookie不是这样的问题(它保留正确,或者如果处理程序没有删除它,则错误地决定用户没有登录,基于缺少的会话).问题是Session Cookie丢失了,或者没有被正确识别.所以修复是在登录时手动添加会话cookie,如下所示:
HttpCookie authCookie = new HttpCookie("ASP.NET_SessionId",Session.SessionID);
authCookie.Domain = ".mydomain.com";
authCookie.Expires = DateTime.Now.AddMonths(1);
Response.Cookies.Add(authCookie);

现在当浏览器再次打开时,会话被正确识别,用户会话恢复.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读