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
方法,返回「任務」,返回的關鍵字一定不能跟一個對象表達式。
有沒有辦法讓你看到這混亂?