2013-12-09 180 views
0

有什麼辦法可以在ASP.NET MVC4中掛接到(我想在登錄後直接檢查某些條件)登錄過程。我正在使用Visual Studio提供的默認MemberShip類。掛鉤登錄(MVC4)

回答

0

是的,你可以在OnAuthorization方法上創建你的AuthorizeAttribute並實現你的登錄。

這裏有一個例子:

public class AuthenticateAndAuthorizeAcsMvcAttribute : System.Web.Mvc.AuthorizeAttribute 
{ 
    public override void OnAuthorization(System.Web.Mvc.AuthorizationContext filterContext) 
    { 
     var principal = filterContext.HttpContext.User; 
     if (principal == null || !principal.Identity.IsAuthenticated) 
     { 
      filterContext.Result = new ViewResult() 
      { 
       ViewName = "AcsLogin", 
       ViewData = filterContext.Controller.ViewData, 
       TempData = filterContext.Controller.TempData 
      }; 
      return; 

     } 
     base.OnAuthorization(filterContext); 
    } 

} 
+0

追隨你的代碼中,我得到以下異常:「給定的過濾器實例必須實現以下過濾器接口中的一個或多個:個IAuthorizationFilter,IActionFilter,IResultFilter,個IExceptionFilter。」當使用System.Web.Http和使用System.Web.Mvc時,它說沒有合適的方法來覆蓋。 – Choraimy

+0

@Choraimy對不起,我剛剛在codeproject上找到了代碼,無法對其進行測試。我只是告訴你,你應該重寫OnAuthorization方法。我已經修正了上面的示例。乾杯。 –