2012-07-19 95 views
1

我編輯了我的問題,這裏是我用於實現身份驗證的代碼。如何在執行ASP.NET MVC4中的方法之前檢查用戶權限角色訪問權限

繼承AuthorizeAttribute的類。

public class FBxAuth : AuthorizeAttribute 
    { 

     public FBxAuth() 
      : base() 
     { 

     } 
     protected override bool AuthorizeCore(HttpContextBase httpContext) 
     { 
      bool isAuthenticated = false; 
      if (httpContext.User.Identity.IsAuthenticated) 
      { 
       // here I will check users exists in database. 
       // if yes , isAuthenticated=true; 
      } 
      return isAuthenticated; 
     } 
     protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) 
     { 
      filterContext.HttpContext.Response.Redirect("/home/Register/?returningURL=" + 
       filterContext.HttpContext.Server.UrlEncode(filterContext.HttpContext.Request.Url.ToString())); 

     } 

    } 

我控制器

[FBxAuth] 
     public ActionResult Index() 
     { 
      teamDA = new TeamDataAccess(); 
      var teams = teamDA.TeamsList(); 

      return View(teams); 
     } 
  1. 我是否按照正確的方法是什麼?

2.如何檢查經過身份驗證的用戶是否有權在控制器中執行操作。 例如:刪除。 www.abc.com/teams/5/刪除將執行刪除 我可以隱藏用戶界面的刪除鏈接。 但是,如果用戶試圖通過提供上面提到的網址來刪除,我該如何阻止他執行該操作?

回答

0

您必須執行與您的索引操作相同的操作,只需將[FBxAuth]或普通[Authorize]屬性添加到您希望僅允許訪問經過身份驗證的用戶的操作。