1
試圖瞭解如何在調用具有Authorize
標頭且僅重定向到視圖的控制器操作時避免請求用戶名和密碼。如何在ASP.NET MVC中授權失敗時顯示自定義錯誤
在我的web.config我有
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" cacheRolesInCookie="false">
<providers>
<clear />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
然後,在我的控制,我前綴的動作如下
[Authorize(Roles = "DOMAIN\\Group")]
public ActionResult Index()
{
...controller action code here
}
如果我將其設置爲我屬於一個域\組到,那麼應用程序就像預期的那樣工作。如果我將其更改爲虛假組進行測試,則會顯示用戶名和密碼對話框。顯然,認證永遠不會發生。如果我在對話框中單擊取消,我會重定向到401錯誤頁面。
我想要做的是,因爲根據定義在web.config文件中只有Windows用戶可以連接,如果該Windows用戶不在所選組中,只需重定向到特定的View而不是提示用戶名和密碼。
DOH !!對於.NET和C#來說相當新,我忘了所有關於自定義驗證類。像魅力一樣工作 –