Asp.net-Mvc-3

在 MVC 中設置 403 錯誤頁面

  • June 17, 2021

我重寫了類來執行自定義授權

[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" />

通過這種方式,我可以在控制器中添加額外資訊或執行其他操作,例如:

  • 就像登錄到有人試圖訪問經過身份驗證的區域的數據庫一樣。
  • 錯誤計數。
  • 也許是他們可以用來發送管理員資訊的錯誤或報告表單。

這樣您就可以更好地控制正在發生的事情。

引用自:https://stackoverflow.com/questions/7022232