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