遠端驗證提供者的 AuthenticateAsync
OpenIdConnect、WsFederation 和 OAuth 等遠端驗證提供者均已經過更新,能夠於要求沒有任何可取得的使用者資訊時避免不必要的錯誤。
導入的版本
.NET 7
先前的行為
過去,當在遠端驗證提供者上呼叫 AuthenticateAsync 但沒有正在活動的使用者時,呼叫會失敗並傳回類似 OpenIdConnect was not authenticated. Failure message: Not authenticated
的訊息。
新的行為
從 .NET 7 開始,AuthenticateAsync 會傳回匿名身分識別 AuthenticateResult.NoResult()。
中斷性變更的類型
這項變更會影響二進位相容性。
變更原因
先前的行為:
- 與會傳回 AuthenticateResult.NoResult() 的
Cookie
和Negotiate
驗證不一致。 - 造成過多的失敗記錄,特別是當遠端驗證處理常式設定為預設處理常式,並針對每個要求叫用時更是如此。
建議的動作
如果您有直接叫用 AuthenticateAsync 的程式碼,請加以檢查,確保其可適當地處理 AuthenticateResult.NoResult() 和匿名或空白的 ClaimsIdentity 執行個體。