2011-09-01 169 views
1

我使用Windows身份驗證在我與WindowsTokenRoleProvider MVC應用程序。我創建了一個如下所示的控制器操作:ASP.net MVC - 授權使用Windows身份驗證/角色提供

[Authorize([email protected]"Fake\Role")] 
public ActionResult Admin() 
{ 
    return View(); 
} 

當我嘗試擊中此頁時,我看到一個空白頁。有沒有辦法讓我顯示一個自定義視圖,上面寫着「您無權查看此頁面」,而不僅僅是顯示空白頁面。如果我使用表單身份驗證,那麼它會將我重定向到登錄頁面,但這對於Windows身份驗證沒有任何意義,因爲您從不真正登錄。

+1

[重定向未經授權的控制器在ASP.NET MVC中](http://stackoverflow.com/questions/977071/redirecting-unauthorized-controller-in-asp-net-mvc) – dlev

+0

@dlev我不是當然,如果這實際上是重複的。這個問題雖然沒有具體提及表單身份驗證似乎完全集中在表單身份驗證。這是關於Windows驗證。 –

+0

@克里斯答案有關自定義AuthorizationFilter,這是去一個很好的方式設定不同的結果鏈接的問題舉行了會談。 – dlev

回答

1

你很可能沒有得到一個空白頁(我不是絕對肯定)。你很可能會得到一個沒有內容的http響應,但有一個403未經授權的狀態碼。

假設這是正確的,所有你需要做的是在ASP.NET自定義錯誤(和IIS自定義錯誤)設置爲403碼到相應的網頁的重定向規則。

+0

啊,你可能是對的。它出現在IE :) – Dismissile

+0

一個空白頁,我添加了一個的customErrors部分與兩個403個404的錯誤代碼。如果我輸入一個無效地址,那麼它會將我重定向到我的404頁面,但是當我嘗試查看我沒有被授權查看的頁面時,我仍然看到一個空白頁面。我無法使用小提琴手,因爲我沒有管理員權限來安裝在我的機器上。我怎麼知道它是否真的是403? – Dismissile

+0

Firefox中的Firebug,或在IE9和Chrome的開發者工具也應該讓你看到的響應代碼。如果沒有這些工作,你應該能夠使用curl直接調用url。你是否也設置了IIS自定義錯誤和asp.net自定義錯誤? –

相關問題