0
爲了嘗試和優雅地處理來自ajax的重定向,我遵循此Prevent Forms authentication。但是,我需要能夠確定某些屬性是否正在裝飾此調用的操作,因爲我只想在某些場合執行此操作。我可以從HttpRequest對象中獲取此方法的信息嗎?如何檢查來自HttpRequest的動作屬性
基本上走的是部分從上面的代碼,我想操縱:
public class SuppressFormsAuthenticationRedirectModule : IHttpModule {
private void OnPostReleaseRequestState(object source, EventArgs args) {
var context = (HttpApplication)source;
var response = context.Response;
var request = context.Request; // request is HttpRequest
if (response.StatusCode == 401 && request.Headers["X-Requested-With"] ==
"XMLHttpRequest") {
// TODO HERE: Check that the controller action contains a particular attribute
// and if so do not suppress redirect
SuppressAuthenticationRedirect(context.Context);
}
}
}
UPDATE: 這或許值得注意的是,此代碼編譯DLL項目,然後將其encorporated進入宿主內舉行MVC應用程序(我們無法訪問)。在這種情況下,除非我能確保它不影響應用程序中的其他控制器,否則我實際上沒有訪問權限來更改默認實現。
乾杯巴里。它絕對看起來像一個選項。不幸的是,這個代碼是共享應用程序的一部分,所以我會對更改默認控制器工廠感到厭倦,除非我能確保它隻影響我擁有的控制器....我不確定這是否可行? – dreza
我修改了上面的代碼以避免必須設置當前控制器工廠。 – barry