遠端驗證提供者的 AuthenticateAsync

OpenIdConnect、WsFederation 和 OAuth 等遠端驗證提供者均已經過更新,能夠於要求沒有任何可取得的使用者資訊時避免不必要的錯誤。

導入的版本

.NET 7

先前的行為

過去,當在遠端驗證提供者上呼叫 AuthenticateAsync 但沒有正在活動的使用者時,呼叫會失敗並傳回類似 OpenIdConnect was not authenticated. Failure message: Not authenticated 的訊息。

新的行為

從 .NET 7 開始,AuthenticateAsync 會傳回匿名身分識別 AuthenticateResult.NoResult()

中斷性變更的類型

這項變更會影響二進位相容性

變更原因

先前的行為:

  • 與會傳回 AuthenticateResult.NoResult()CookieNegotiate 驗證不一致。
  • 造成過多的失敗記錄,特別是當遠端驗證處理常式設定為預設處理常式,並針對每個要求叫用時更是如此。

如果您有直接叫用 AuthenticateAsync 的程式碼,請加以檢查,確保其可適當地處理 AuthenticateResult.NoResult() 和匿名或空白的 ClaimsIdentity 執行個體。

受影響的 API