提问者:小点点

OWIN身份验证:异步方法缺少'await'运算符


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

显示错误的方法:

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

显示错误为

此异步方法缺少'await'运算符,将同步运行。考虑使用'await'运算符等待非阻塞API调用,或'await task.run(...)'在后台线程上执行与CPU绑定的工作。

如何解决此问题?


共2个答案

匿名用户

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

但是,一旦您将其移除,编译器将期望您为提供一个返回值。显然,您可以创建一个,无论您选择什么,但在本例中,您可能只想返回以下内容(将在本文中讨论):

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

匿名用户

不是签名的一部分。重写方法并不意味着必须将重写标记为

因此,如果您的代码中没有任何标记即可。

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

相关问题