如何设置不是';t由ASP.NET管理
本文关键字:ASP 管理 NET 何设置 设置 | 更新日期: 2023-09-27 18:24:04
我的ASP.NET应用程序管理两个cookie:一个是由FormsAuthentication颁发和管理的标准身份验证cookie,另一个是启用非Windows/AASP.NET系统的单点登录的cookie。
ASP.NET应用程序配置为通过web.config:为身份验证cookie启用滑动过期
<authentication mode="Forms">
<!-- forms attributes removed for brevity -->
<forms name=".ASPXAUTH" slidingExpiration="true" />
</authentication>
不幸的是,滑动过期只会更改身份验证cookie,而不会更改SSO cookie。是否有我可以订阅的事件,以便在authcookie的过期时间延长时通知我?
或者,我是否也可以通过拦截对应用程序的每个有效请求并手动扩展cookie来模拟这种行为?如果是,我必须使用哪种方法来拦截对任何控制器的此类请求?
如果发出请求并且超过一半的超时间隔,则auth cookie滑动过期会重置过期时间。所以要模仿这个功能。
当用户发出请求时,请检查超时间隔是否已超过一半。如果有,则重置SSO cookie的过期时间。
这可能会变得棘手,因为您无法从cookie中获取过期值。如果您的SSO cookie没有到期日期的密钥/值(不是HttpCookie的Expires属性),则需要添加它。如果您不能更改该cookie,而只是更改其到期时间,则可能只需设置第三个cookie来跟踪SSO cookie的到期时间。
您可以在global.asax中实现Application_AuthenticateRequest
,以检查对应用程序发出的每个http请求的身份验证。