c# – Asp.net身份终止会话Cookie
我们正在使用MVC 5.2和
ASP.NET Identity框架进行身份验证屏幕(用户和密码组合)的身份验证,并使用Cookie持久化身份.我在启动方法中配置了Identity框架,将认证cookie的到期时间设置为30天,当用户选择“记住我”(IsPersistent = true)时,此功能很好.当IsPersistent = false(用户选择不选择“记住我”)时,会默认创建一个会话cookie.这个会话cookie在Internet Explorer和FireFox中工作得很好,当浏览器关闭时,cookie丢失.在Chrome和Safari(也可能是其他浏览器)中,有一些选项可以确保会话cookie不会丢失,在这种情况下,即使浏览器关闭并重新打开,用户仍然可以登录.
我想要一个工作,以确保会话cookie永远不会持续,但在一小时内被丢弃.我可以通过检查帐户是否在X分钟/小时内没有活动,并且用户从未选择“记住我”,但是如果该时间间隔过去,则用户身份将被拒绝接受下一个请求. 有没有人在他们的ASP.NET身份实现中创建了一个工作,以确保会话cookie在X时间后的后端过期,或者有更好的方法来解决这个限制?也许可以使用CookieAuthenticationProvider的自定义实现来执行此操作,或者将用户声明的到期日期/时间提交到可在ValidateIdentity进程中的某个地方检查? 任何想法都会很棒. 编辑 – 更多信息: >用户想要“记住我”,它创建一个长寿命的cookie,使用滑动过期设置30天的到期时间.这使得用户能够在浏览器会话之间保持身份验证,并且由于不活动而没有超时,除了未访问网站超过30天.我的owin启动方法中的设置反映了cookie的到期时间为30天(CookieAuthenticationOptions.ExpireTimeSpan设置为30天).无论浏览器平台如何,我都可以这样做(据我所知). See this link for more detail on Chrome and session cookies. 解决方法
身份已经将到期时间嵌入到Cookie数据中,并由OWIN进行检查.
要限制Cookie生命周期在Startup.Auth.cs中将ExpireTimeSpan设置为ConfigureAuth方法中的一小时: public void ConfigureAuth(IAppBuilder app) { // other stuff app.UseCookieAuthentication(new CookieAuthenticationOptions { ExpireTimeSpan = TimeSpan.FromHours(1),}); } 这将确保Cookie将在一小时内到期. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |