繁体   English   中英

OWIN 身份验证:异步方法缺少“等待”运算符

[英]OWIN Authentication:async method lacks 'await' operators

我已经在我的项目中实现了 OWIN 身份验证。但是当我尝试构建项目时,它显示了一些错误。

显示错误的方法:

 public override async Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
    {
    //code    
   }
  public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
    {
  //code 
    }

显示错误是

此异步方法缺少“等待”运算符,并且将同步运行。 考虑使用 'await' 运算符来等待非阻塞 API 调用,或使用 'await Task.Run(...)' 在后台线程上执行 CPU 密集型工作。

我该如何解决这个问题?

如果您没有在函数的实现中使用await运算符,那么您可以删除async修饰符。

但是,一旦您删除它,编译器将期望您为Task提供返回值。 您显然可以根据自己的选择创建一个Task ,但在这种情况下,您可能只想返回以下内容( 此处讨论):

public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
    return Task.FromResult<object>(null);
}

async不是签名的一部分。 仅仅因为您覆盖async方法并不意味着您必须将覆盖标记为async

因此,如果您的代码中没有任何await ,只需删除async标记。

public override Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
{
//code    
}
public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
//code 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM