以前的代码
public class TokenAuth : AuthorizeAttribute
{
/// <summary>
/// 验证
/// </summary>
/// <param name="actionContext"></param>
/// <returns></returns>
protected override bool IsAuthorized(HttpActionContext actionContoext)
{
1.获取Request.QueryString 中para1
2.判断para1合法 返回true,不合法 返回 false
}
}
core 下没有了AuthorizeAttribute, 不知道该怎么写了?
有的,只是改成了下面的这样
[Authorize] public class TokenAuth { /// <summary> /// 验证 /// </summary> /// <param name="actionContext"></param> /// <returns></returns> }
public class Authorize : ActionFilterAttribute { public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { //Do Something } }
[Authorize] 是已经写的Attribute 里面有自己的一套逻辑。
ActionFilterAttribute 中 OnActionExecuting 方法 还是会执行Action 内容的,之前的 AuthorizeAttribute.IsAuthorized 方法 是可以阻断 执行Action 的。
@Vancen: 那你可以写Middleware 来进行控制
Middleware 详细可以查看
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?tabs=aspnetcore2x
@BUTTERAPPLE: 刚才也想了,Middleware 是可以实现的。
如果用Middleware 的话 那么AllowAnonymous特性就不管用了