0
有什麼辦法可以在ASP.NET MVC4中掛接到(我想在登錄後直接檢查某些條件)登錄過程。我正在使用Visual Studio提供的默認MemberShip類。掛鉤登錄(MVC4)
有什麼辦法可以在ASP.NET MVC4中掛接到(我想在登錄後直接檢查某些條件)登錄過程。我正在使用Visual Studio提供的默認MemberShip類。掛鉤登錄(MVC4)
是的,你可以在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);
}
}
追隨你的代碼中,我得到以下異常:「給定的過濾器實例必須實現以下過濾器接口中的一個或多個:個IAuthorizationFilter,IActionFilter,IResultFilter,個IExceptionFilter。」當使用System.Web.Http和使用System.Web.Mvc時,它說沒有合適的方法來覆蓋。 – Choraimy
@Choraimy對不起,我剛剛在codeproject上找到了代碼,無法對其進行測試。我只是告訴你,你應該重寫OnAuthorization方法。我已經修正了上面的示例。乾杯。 –