2009-04-13 49 views
8

我正在使用[Authorize] Actions,通過Ajax返回部分視圖;但我沒有得到我想要的行爲(雖然它的行爲我期望)。如何最好地使用Ajax和部分視圖的[Authorize]屬性?

這似乎是一個長鏡頭;但是,有什麼方法可以將此屬性擴展爲「爆發」AJAX調用並將整個頁面重定向到登錄屏幕? (而不是將登錄屏幕返回到我已設置UpdateTargetId的任何位置?)

我想我應該如何在每個特定的Ajax調用上執行此操作,但是如果我可以通過某種方式來集中化,它會節省很多代碼...

回答

8

AuthorizeAttribute不會爲你做這件事,但你可以集中你的代碼。當沒有用戶當前登錄時,創建一個返回http狀態代碼401(未授權)的新屬性。在由site.master引用的JavaScript文件中,處理jQuery $ .ajaxError事件。在響應狀態代碼中查找http 401並通過JavaScript重定向到您的登錄頁面。現在,如果當前用戶未被授權,那麼通過jQuery創建的任何Ajax調用都將在此處結束。

相關問題