Microsoft .NET

In diesem Artikel werden die bedeutendsten Änderungen in ASP.NET Core 9.0 hervorgehoben und mit relevanten Dokumentationslinks versehen. 

Blazor

In diesem Abschnitt werden neue Funktionen für Blazor beschrieben.

Konstruktor-Injektion

Razor-Komponenten unterstützen jetzt die Konstruktor-Injektion. Im folgenden Beispiel injiziert die teilweise (CodeBehind) Klasse den NavigationManager-Service über einen primären Konstruktor:

Microsoft .NET

Weitere Informationen finden Sie unter Abhängigkeitsinjektion in ASP.NET Core Blazor | Microsoft Learn.

Websocket-Komprimierung für interaktive Serverkomponenten

Interaktive Serverkomponenten ermöglichen standardmässig Kompression für WebSocket-Verbindungen und setzen eine frame-ancestors Content Security Policy (CSP)-Richtlinie auf ‘self’, die das Einbetten der App in ein <iframe> der Ursprungsseite erlaubt, von der aus die App bereitgestellt wird, wenn die Kompression aktiviert ist oder eine Konfiguration für den WebSocket-Kontext bereitgestellt wird.

Die Kompression kann deaktiviert werden, indem ConfigureWebSocketOptions auf null gesetzt wird, was die Anfälligkeit der App für Angriffe verringert, aber zu einer Leistungsminderung führen kann.

Microsoft .NET

Konfigurieren Sie eine striktere frame-ancestors CSP mit einem Wert von ‘none’ (einfache Anführungszeichen erforderlich), die WebSocket-Kompression ermöglicht, aber verhindert, dass Browser die App in ein beliebiges <iframe> einbetten. 

Microsoft .NET

Weitere Informationen finden Sie in den folgenden Ressourcen:

SignalR

In diesem Abschnitt werden neue Funktionen für Signal R beschrieben.

Unterstützung für polymorphe Typen in SignalR-Hubs

Hub-Methoden können jetzt eine Basisklasse anstelle der abgeleiteten Klasse akzeptieren, um polymorphe Szenarien zu ermöglichen. Der Basistyp muss zur Unterstützung von Polymorphismus annotiert sein.

Microsoft .NET

Minimal APIs

In diesem Abschnitt werden neue Funktionen für minimale APIs beschrieben.

Hinzufügen von InternalServerError und InternalServerError<TValue> zu TypedResults

Die TypedResults-Klasse ist ein nützliches Hilfsmittel für die Rückgabe von stark typisierten HTTP-Statuscode-basierten Antworten aus einer minimalen API. TypedResults enthält jetzt Factory-Methoden und Typen zur Rückgabe von “500 Internal Server Error”-Antworten von Endpunkten. 

Microsoft .NET

Authentifizierung und Autorisierung 

In diesem Abschnitt werden neue Funktionen für Authentifizierung und Autorisierung beschrieben. 

Anpassung der OIDC- und OAuth-Parametern

Die OAuth- und OIDC-Authentifizierungshandler verfügen jetzt über eine AdditionalAuthorizationParameters-Option, um die Anpassung von Autorisierungsmessage-Parametern zu erleichtern, die normalerweise als Teil der Redirect-Query-String enthalten sind. In .NET 8 und früher erfordert dies einen benutzerdefinierten OnRedirectToIdentityProvider-Rückruf oder eine überschriebene BuildChallengeUrl-Methode in einem benutzerdefinierten Handler.

Die vorherige benutzerdefinierte Code-Anpassung in .NET 8:

Microsoft .NET

Kann jetzt durch den folgenden Code vereinfacht werden:

Microsoft .NET

Konfiguration der erweiterten Authentifizierungsflags von HTTP.sys

Sie können jetzt die HTTP_AUTH_EX_FLAG_ENABLE_KERBEROS_CREDENTIAL_CACHING- und HTTP_AUTH_EX_FLAG_CAPTURE_CREDENTIAL-HTTP.sys-Flags konfigurieren, indem Sie die neuen EnableKerberosCredentialCaching- und CaptureCredentials-Eigenschaften des HTTP.sys AuthenticationManager verwenden, um die Handhabung der Windows-Authentifizierung zu optimieren.

Microsoft .NET

Sonstiges

Die folgenden Abschnitte beschreiben verschiedene neue Funktionen.

Metadaten für Endpunkte auf der Entwickler-Ausnahme-Seite

Attribute, die MVC-Aktionen, minimale APIs und gRPC-Methoden hinzugefügt wurden, sind Beispiele für Endpunktemetadaten. ASP.NET Core verwendet Endpunktemetadaten, um das Endpunkverhalten zu steuern, z.B. Routing, Authentifizierung und Autorisierung, Response-Caching, Rate Limiting, OpenAPI-Generierung und mehr.

.NET 9 fügt Metadaten zur Entwickler-Ausnahme-Seite hinzu. Die neuen Metadateninformationen erscheinen im Routing-Abschnitt zusammen mit anderen Routing-Informationen. Diese Informationen erleichtern das Debuggen von ASP.NET Core-Fehlern während der Entwicklung.

ASP.NET Core hat viele Schlüssel-Wert-Sammlungen. Diese verbesserte Debugging-Erfahrung gilt für:

  • HTTP-Header
  • Query-Strings
  • Formulare
  • Cookies
  • View-Daten
  • Routendaten
  • Features

 

Quelle: Neuerungen in ASP.NET Core 9.0 | Microsoft Learn