[英]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.