0
我试图使我自己的自定义System.Web.Http.AuthorizeAttribute
。一切正常,直到我需要在覆盖的OnAuthorization
函数中运行一些async
函数。自定义AuthorizeAttribute OnAuthorizationAsync函数
我发现OnAuthorizationAsync
方法我用运行async
方法,但是仍然有问题。我需要确保连接到HttpActionContext
的标头位于db中。
public override Task OnAuthorizationAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
{
IEnumerable<string> values;
if (actionContext.Request.Headers.TryGetValues("Authentication", out values))
{
var token = new Token() { TokenString = values.First() };
if (await _tg.ValidateToken(token))
{
return base.OnAuthorizationAsync(actionContext, cancellationToken);
}
}
base.HandleUnauthorizedRequest(actionContext);
}
_tg.ValidateToken(token)
为async
方法,它返回一个布尔值。如果我尝试await
它,使OnAuthorizationAsync
的async
方法我那么显然不能返回一个任务:
由于OnAuthorizeAsync是一个
async
方法,返回“任务”,返回的关键字一定不能跟一个对象表达式。
有没有办法让你看到这混乱?