在CodePlex上瀏覽MVC部分後,我注意到MVC中的[Authorize]屬性在授權失敗時返回HttpUnauthorizedResult()(codeplex AuthorizeAttribute class)。MVC授權屬性+ HttpUnauthorizedResult + FormsAuthentication
在CodePlex中的HttpUnauthorizedResult()的源代碼是(我不允許輸入另一個URL,因爲我的代表不夠高,但用22929#266476替換上面的URL上的數字):
// 401 is the HTTP status code for unauthorized access - setting this
// will cause the active authentication module to execute its default
// unauthorized handler
context.HttpContext.Response.StatusCode = 401;
特別是,註釋描述了認證模塊的默認未授權處理程序。
我似乎無法找到有關此默認未經授權的處理程序的任何信息。特別是,我沒有使用FormsAuthentication,當授權失敗時,我得到一個醜陋的IIS 401錯誤頁面。
有沒有人知道這個默認的未授權處理程序,特別是FormsAuthentication如何掛鉤以覆蓋它?
我正在爲我的足球隊寫一個非常簡單的應用程序,他們確認或否認他們是否可以參加特定的比賽。如果我在Web.config中啓用FormsAuthentication,重定向的工作方式,但我沒有使用FormsAuthentication,我想知道是否有解決方法。
您使用的是什麼樣的身份驗證? – Zote 2010-01-26 16:09:01
你想授權嗎?關於認證的最終結果是什麼? – 2010-01-26 16:10:51
我寫了我自己的小認證模塊,它分配了一個身份和角色。 [授權]需要檢查用戶是否可以訪問該頁面以確認他們可以在特定的比賽中進行比賽。如果他們不被允許根據角色進行遊戲,那麼我們不會給出一個非常無用的401錯誤,而是要給他們一些關於他們爲什麼不能玩的有用信息。重寫這個401似乎是合乎邏輯的方法,但我很驚訝於這個默認的未授權處理程序的文檔很少。 – Anthony 2010-01-26 16:23:23