2011-09-22 32 views
1

我有IAuthorizationFilter過濾器來檢查特定角色。如果用戶沒有指定角色,我想顯示一個特定的視圖,其中提到了「您無權查看此頁面」的內容。ASP.NET MVC:如何在IAuthorizationFilter中顯示特定視圖作爲授權失敗的結果

我也想在特定的url上顯示這個視圖,所以重定向不是一個選項。

這裏是我想要的東西:

1)用戶進入/管理/付款 2)/管理/付款需要管理員權限 3)用戶是不是管理員。 4)用戶是顯示頁面,說他無法訪問此頁面,但網址是/管理/付款

謝謝。

回答

2
public class MyAuthorizeAttribute : AuthorizeAttribute 
{ 
    protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext) 
    { 
     // TODO: do your authorization or if you want to keep the default 
     // simlpy invoke the base method 
    } 

    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) 
    { 
     filterContext.Result = new ViewResult 
     { 
      ViewName = "~/Views/Shared/Unauthorized.cshtml" 
     }; 
    } 
} 

然後:

[MyAuthorize(Roles = "Admin")] 
public ActionResult Payments() 
{ 
    ... 
} 
相關問題