Asp.net-Mvc-3
在 MVC 中設置 403 錯誤頁面
我重寫了類來執行自定義授權
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)] public class AuthorizeAttribute : System.Web.Mvc.AuthorizeAttribute { protected override void HandleUnauthorizedRequest(System.Web.Mvc.AuthorizationContext filterContext) { if (filterContext.HttpContext.Request.IsAuthenticated) { filterContext.Result = new System.Web.Mvc.HttpStatusCodeResult(403); } else { base.HandleUnauthorizedRequest(filterContext); } } }現在在 web.config 我已經配置了 403 錯誤頁面
<customErrors defaultRedirect="/Shared/Error" mode="On"> <error statusCode="403" redirect="/Shared/UnAuthorize" /> </customErrors>但瀏覽器仍然向我顯示 403 的預設錯誤頁面,我在這裡缺少什麼,任何想法
除了 Max B 之外,只是一個小提示/註釋。答案:
當我使用自定義錯誤時,我會創建一個
ErrorsController, 和一個 UnAuthorize ActionResult 並執行以下操作:<error statusCode="403" redirect="/Errors/UnAuthorize" />通過這種方式,我可以在控制器中添加額外資訊或執行其他操作,例如:
- 就像登錄到有人試圖訪問經過身份驗證的區域的數據庫一樣。
- 錯誤計數。
- 也許是他們可以用來發送管理員資訊的錯誤或報告表單。
- …
這樣您就可以更好地控制正在發生的事情。