預設驗證配置

從 .NET 7 開始,我們便在 ASP.NET Core 中的驗證區域引進新的行為。

過去,使用者必須在 AddAuthentication 呼叫中設定要由驗證和授權處理常式使用的預設驗證配置:

builder.Services.AddAuthentication("MyDefaultScheme");

之後,當註冊「單一」驗證配置時,該配置會被視為預設配置。 舉例來說,在下列程式碼中,"MyDefaultScheme" 會被視作預設配置。

builder.Services.AddAuthentication().AddOAuth("MyDefaultScheme");

這項變更可能會公開應用程式中的意外行為變更,例如驗證選項比預期中還早驗證。

導入的版本

ASP.NET Core 7.0

先前的行為

過去,當使用者未在 AddAuthentication 呼叫中提供預設配置時,不會設定任何預設配置。

builder.Services.AddAuthentication().AddCookie();

這影響到應用程式層中驗證處理常式的行為。

新的行為

從 ASP.NET Core 7.0 開始,如果只有單一配置在應用程式中註冊,則該配置會被視為預設。 在下列程式碼中,會將 CookieDefaults.AuthenticationScheme 視為預設配置。

builder.Services.AddAuthentication().AddCookie();

不過,在下一個程式碼片段中,因為註冊了多個配置,所以不會設定預設。

builder.Services.AddAuthentication().AddCookie().AddJwtBearer();

中斷性變更的類型

此變更會影響二進位相容性

變更原因

進行這項變更的原因,是為了在設定驗證和設定合理預設時減少重複使用的情形。

該變更只會影響有註冊單一配置的應用程式。 針對這些案例,建議您確認自己的應用程式已準備好處理單一配置是預設的假設。 舉例來說,請確認與該配置相關的選項設定無誤。

或者,您可以設定 Microsoft.AspNetCore.Authentication.SuppressAutoDefaultScheme 應用程式內容旗標來停用新的行為。

受影響的 API

驗證 API。