2013-09-16 17 views
1

當網站表單身份驗證超時時,我可以重定向到自定義頁面而不是Login.aspx頁面嗎?我有非常標準的表單身份驗證與web.config中的以下代碼。表單驗證超時時如何重定向到自定義頁面?

<forms loginUrl="Login.aspx" timeout="25" slidingExpiration="true" cookieless="UseCookies" defaultUrl="Default.aspx"/> 

    <customErrors mode="On" defaultRedirect="ErrorPage.aspx"> 
     <error statusCode="401" redirect="TimedOutErrorPage.aspx" /> 
    </customErrors> 

    <location path="TimedOutErrorPage.aspx"> 
    <system.web> 
     <authorization> 
      <allow users="?"/> 
     </authorization> 
    </system.web> 
</location> 

我試圖讓401狀態碼有一個自定義錯誤,但它不能正常工作。它總是返回到Login.aspx。

回答

1

當您的會話超時時,在服務器端它是已知的,但客戶端即瀏覽器,不知道何時會話過期,出於任何原因,因此不會處理任何內容,直到下一個請求是通過做一些活動來完成的。那時候會發現會話已經過期,然後嘗試重新登錄。

所以,這個想法是開發一個解決方案,它將跟蹤客戶端(瀏覽器)上的超時值,並對服務器端進行適當的更新。使用客戶端腳本將服務器超時與客戶端超時同步。

然後,您可以向用戶顯示關於會話過期的警告/通知,並強制他們與其交互。閱讀this article這樣做的詳細信息。

相關問題