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方法。我已经修正了上面的示例。干杯。 –