0
在使用窗体身份验证的asp.net应用程序中,我试图查找发生超时时将调用哪个事件。发生窗体身份验证超时时会调用什么事件
我知道我可以用global.asax中的Session_End
捕获Session
超时事件,但是有一个用于窗体验证部分?
在使用窗体身份验证的asp.net应用程序中,我试图查找发生超时时将调用哪个事件。发生窗体身份验证超时时会调用什么事件
我知道我可以用global.asax中的Session_End
捕获Session
超时事件,但是有一个用于窗体验证部分?
正如你可以在这里看到:Forms Authentication Timeout Logging,你不能在准确的时间,这超时检测到它。
你可以做的是检查Application_PreRequestHandlerExecute窗体身份验证票证。这意味着您只能在用户向服务器发出请求的时候进行检查,以便用户关闭浏览器时,直到下次用户再次访问服务器时才能检测到此事件。
你能以某种变通的作法是使用在后台Ajax请求,但只会工作,只要用户保持开放的浏览器窗口,在您的网站加载的页面。请注意,如果您有滑动超时,这可能会停止发生超时。
我尝试使用建议一些测试,但我已经打了一个问题,当窗体身份验证确实超时,我的身份验证票证无不复存在,所以我不能检查它被过期。有没有可能导致这种情况的一些设置? – sbarnby71
你可以验证(也许与提琴手)表单身份验证Cookie发送请求中的所有? –
我不能在fiddler上简单地发布代码,但是运行了一些更多的测试,证明Auth Cookie是在登录后创建的,并且会随每个请求一起发回,但是一旦Auth Cookie过期(将超时设置为2分钟,离开应用程序3分钟),任何请求都不包含Auth Cookie。 – sbarnby71