2013-04-01 32 views
1

在我的MVC 4申請與SimpleMembershipProvider。我正在用屬性[Authorize(Roles = "Admin")]裝飾我的控制器。AuthorizeRoles = admin當錯誤時如何重定向到索引。

當角色爲false時,我將用戶重定向到登錄頁面。我怎樣才能改變它重定向到索引頁面?

+0

如果您重定向到主頁,而不是登錄頁面,那麼你的用戶會失去獲得能力回到你的系統? –

回答

1

可以使用自定義通過覆蓋AuthorizeAttribute

[CustomAuthAttribute(Roles = "Admin")] 

代碼授權屬性:

using System; 
using System.Web.Http; 
using System.Net.Http; 

public class CustomAuthAttribute : AuthorizeAttribute 
{ 
    public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext) 
    { 
      /* if authorization condition fails */ 
      if(!condition) 
      { 
       HandleUnauthorizedRequest(actionContext); 
      } 
     } 

    protected override void HandleUnauthorizedRequest(System.Web.Http.Controllers.HttpActionContext actionContext) 
    { 

     filterContext.Result = new RedirectToRouteResult(
         new RouteValueDictionary 
         { 
          { "action", "/*ActionName*/" }, 
          { "controller", "/*ControllerName*/" } 
         }); 
    } 
} 
相關問題