2008-11-18 28 views
3

我使用ASP.Net MVC測試版1,我用標準身份驗證控制器的asp.net成員資格提供程序限制訪問我的網站。使阿賈克斯得到重定向主頁面登錄時,auth超時

我使用ajax功能來提供例如通過使用jQuery $ .get/$。ajax或使用Ajax.Actionlink MVC幫助程序將部分視圖加載到div來編輯值。大部分時間這一切都正常。

我的問題來了,一旦登錄超時,你點擊其中一個ajax編輯鏈接 - ajax調用返回登錄頁面,通常用於編輯窗體的div。

我想找到一種方法將整個頁面重定向到登錄表單,當身份驗證超時並單擊ajax鏈接時。

我能想到的一種方法是查看響應回調中從ajax調用返回的html,並搜索「登錄」文本或表單字段並從那裏進行重定向 - 但這並不感覺很乾淨- 有沒有更好的辦法?

回答

2

這可能幫助一些:

Bypass Forms Authentication auto redirect to login, How to?

從上面的答案,它看起來像HTTP 403不窗體身份驗證攔截,這樣你就可以推出自己的ActionFilter返回如果HTTP響應403的Ajax請求和授權失敗。

在客戶端,您可以檢查響應代碼403,並重定向到適當的登錄URL。

也有其他方法可以做到這一點!