Asp.net-Mvc

ASP.NET MVC 使用自定義角色提供程序重定向到拒絕訪問頁面

  • August 14, 2009

我正在創建一個自定義角色提供程序,並在我的控制器中設置了一個指定角色的 Authorize 屬性,它工作得很好,如下所示:

[Authorize(Roles="SuperAdmin")]
public class SuperAdminController : Controller
...

但是當使用者無權訪問這個控制器時,他會被重定向到登錄頁面。如何將他重定向到“AcessDenied.aspx”頁面?

[AccessDeniedAuthorize(Roles="SuperAdmin")]
public class SuperAdminController : Controller

AccessDeniedAuthorizeAttribute.cs:

public class AccessDeniedAuthorizeAttribute : AuthorizeAttribute
{
   public override void OnAuthorization(AuthorizationContext filterContext)
   {
       base.OnAuthorization(filterContext);

       if(filterContext.Result is HttpUnauthorizedResult)
       {
           filterContext.Result = new RedirectResult("~/AcessDenied.aspx");
       }
   }
}

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