Share via


Standardauthentifizierungsschema

Ab .NET 7 haben wir ein neues Verhalten im Authentifizierungsbereich in ASP.NET Core eingeführt.

Zuvor mussten Benutzer*innen das Standardauthentifizierungsschema festlegen, das von Authentifizierungs- und Autorisierungshandlern im AddAuthentication-Aufruf verwendet wird:

builder.Services.AddAuthentication("MyDefaultScheme");

Wenn in Zukunft ein einzelnes Authentifizierungsschema registriert wird, wird dieses Schema als Standardschema behandelt. Beispielsweise wird „MyDefaultScheme“ im folgenden Code als Standardschema behandelt.

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

Diese Änderung kann unbeabsichtigte Verhaltensänderungen in Anwendungen verfügbar machen, z. B. Authentifizierungsoptionen, die früher als erwartet überprüft werden.

Eingeführt in Version

ASP.NET Core 7.0

Vorheriges Verhalten

Bisher wurde kein Standardschema festgelegt, wenn Benutzer*innen im AddAuthentication-Aufruf kein Standardschema bereitgestellt haben.

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

Dies wirkte sich auf das Verhalten von Authentifizierungshandlern in der Anwendungsebene aus.

Neues Verhalten

Ab ASP.NET Core 7.0 wird dieses Schema als Standard behandelt, wenn (und nur wenn) ein einzelnes Schema in einer Anwendung registriert ist. Im folgenden Code wird CookieDefaults.AuthenticationScheme als Standardschema behandelt.

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

Im nächsten Codeausschnitt ist jedoch kein Standardwert festgelegt, da mehrere Schemas registriert sind.

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

Typ des Breaking Changes

Diese Änderung kann sich auf die Binärkompatibilität auswirken.

Grund für die Änderung

Diese Änderung wurde vorgenommen, um die Bausteine beim Konfigurieren der Authentifizierung zu reduzieren und sinnvolle Standardwerte einzurichten.

Die Änderung wirkt sich nur auf Anwendungen aus, für die ein einzelnes Schema registriert ist. Für diese Szenarien wird empfohlen, sicherzustellen, dass Ihre Anwendung für die Annahme vorbereitet ist, dass ein einzelnes Schema die Standardeinstellung ist. Stellen Sie beispielsweise sicher, dass die diesem Schema zugeordneten Optionen ordnungsgemäß konfiguriert sind.

Alternativ können Sie das neue Verhalten deaktivieren, indem Sie das App-Kontextflag Microsoft.AspNetCore.Authentication.SuppressAutoDefaultScheme festlegen.

Betroffene APIs

Authentifizierungs-API.