簡體   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