Asp.net mvc 对全局筛选器使用AttributeAuthorization
我已经注册了一个全局筛选器来授权需要cookie的请求,但是我有一个需要公开的控制器,所以我向控制器方法添加了[AllowAnonymous]属性,但是我的筛选器仍然激发并保持重定向。我不确定解决这个问题的最佳方法 我是否需要修改onauthorization方法以查找[AllowAnonymous]属性Asp.net mvc 对全局筛选器使用AttributeAuthorization,asp.net-mvc,Asp.net Mvc,我已经注册了一个全局筛选器来授权需要cookie的请求,但是我有一个需要公开的控制器,所以我向控制器方法添加了[AllowAnonymous]属性,但是我的筛选器仍然激发并保持重定向。我不确定解决这个问题的最佳方法 我是否需要修改onauthorization方法以查找[AllowAnonymous]属性 public class CookieAuthFilter : AuthorizeAttribute { public override void
public class CookieAuthFilter : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
HttpCookie cookie = filterContext.HttpContext.Request.Cookies.Get("token");
if (cookie == null)
{
filterContext.Result = new RedirectResult("/Home/Index");
}
}
}
我是否需要修改onauthorization方法以查找[AllowAnonymous]属性
public class CookieAuthFilter : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
HttpCookie cookie = filterContext.HttpContext.Request.Cookies.Get("token");
if (cookie == null)
{
filterContext.Result = new RedirectResult("/Home/Index");
}
}
}
可以,但只需移动逻辑,使基本的OnAuthorize
方法(包含)不被修改,就更简单了
public class CookieAuthFilter : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
return httpContext.Request.Cookies.Get("token") != null;
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new RedirectResult("/Home/Index");
}
}
如果用户被授权,最好使用AuthorizeCore
返回true,并使用HandleUnauthorizedRequest
进行重定向
OnAuthorization
还包含一些您应该保留的内容
我是否需要修改onauthorization方法以查找[AllowAnonymous]属性
public class CookieAuthFilter : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
HttpCookie cookie = filterContext.HttpContext.Request.Cookies.Get("token");
if (cookie == null)
{
filterContext.Result = new RedirectResult("/Home/Index");
}
}
}
可以,但只需移动逻辑,使基本的OnAuthorize
方法(包含)不被修改,就更简单了
public class CookieAuthFilter : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
return httpContext.Request.Cookies.Get("token") != null;
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new RedirectResult("/Home/Index");
}
}
如果用户被授权,最好使用AuthorizeCore
返回true,并使用HandleUnauthorizedRequest
进行重定向
OnAuthorization
还包含一些您应该保留的内容。看看这个看看这个非常感谢。很好用,非常感谢。工作完美。