asp.net – 手动更新表单认证券:
表单认证券的另一个问题即将到期过期.
问题: <authentication mode="Forms"> <forms timeout="20" name="SqlAuthCookie" protection="All" slidingExpiration="true" /> </authentication> <sessionState timeout="20" /> <authorization> 只有当20分钟内没有请求时,用户才能注销并重定向到login.aspx.问题是用户正在发出请求,仍然被抛出到登录页面.这不应该发生.我想到的是为每个请求手动重置SqlAuthCookie. 以下是我的代码它在context.AcquireRequestState上调用. void context_AcquireRequestState(object sender,EventArgs e) { HttpContext ctx = HttpContext.Current; ResetAuthCookie(ctx); } private void ResetAuthCookie(HttpContext ctx) { HttpCookie authCookie = ctx.Request.Cookies[FormsAuthentication.FormsCookieName]; if (authCookie == null) return; FormsAuthenticationTicket ticketOld = FormsAuthentication.Decrypt(authCookie.Value); if (ticketOld == null) return; if (ticketOld.Expired) return; FormsAuthenticationTicket ticketNew = null; if (FormsAuthentication.SlidingExpiration) ticketNew = FormsAuthentication.RenewTicketIfOld(ticketOld); if (ticketNew != ticketOld) StoreNewCookie(ticketNew,authCookie,ctx); } private void StoreNewCookie(FormsAuthenticationTicket ticketNew,HttpCookie authCookie,HttpContext ctx) { string hash = FormsAuthentication.Encrypt(ticketNew); if (ticketNew.IsPersistent) authCookie.Expires = ticketNew.Expiration; authCookie.Value = hash; authCookie.HttpOnly = true; ctx.Response.Cookies.Add(authCookie); } 我的问题是: >是错误还是可接受的解决方案,重置每个请求的cookie? 谢谢, 解决方法一个表单认证cookie只在一半到期时间过后自动更新.来自微软:
这可能是你的问题.如果您的客户在9分钟内访问您的网站,并且不再访问10分钟,那么他们将被超时.即使您的会话超时设置为20分钟,也会发生这种情况. 手动更新您的票,就像您所做的一样,是没有必要的.你只需要启用滑动过期.如果“特定时间的一半”规则对您无效,那么您必须查看其他解决方案. (编辑:百色站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 为不同项目中的所有Web应用程序网页添加命名空间
- asp.net-mvc – 你如何指定在列表框中显示多少项目(高度)
- 来自ASP.NET MVC站点的“无效的JSON原语:alihack”错误
- asp.net-mvc – ASP.Net MVC中的自我AJAX更新部分视图/控制
- asp.net-mvc – 如何使用selenium进行ASP.NET MVC集成测试
- asp.net-mvc-3 – 如何从ASP.NET MVC#输出中删除空格?
- asp.net-mvc – Azure git部署 – 第二个程序集中缺少引用
- asp.net-web-api – 在ASP.NET Web API控制器的nunit测试中
- .net – RESTful WCF的裸最低配置
- asp.net – 双回发问题
- asp.net – 使用app_offline.htm使应用程序脱机,
- asp.net – Javascript日期本地化
- asp.net 文件上传实例汇总
- asp.net-mvc – AntiXss保护Html模型属性
- asp.net下使用jquery 的ajax+WebService+json 实
- asp.net-mvc – ASP.NET MVC中的Windows Live ID
- asp.net-mvc – ASP.NET MVC WebSite中的ERR_EMP
- Asp.NET控制文件上传的大小方法(超简单)
- asp.net-mvc-3 – 如何在本地测试时禁用elmah发送
- Asp.NetCore1.1版本去掉project.json后如何打包生