Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Dies ist nicht die neueste Version dieses Artikels. Die aktuelle Version finden Sie in der .NET 10-Version dieses Artikels.
Warnung
Diese Version von ASP.NET Core wird nicht mehr unterstützt. Weitere Informationen finden Sie in der .NET- und .NET Core-Supportrichtlinie. Die aktuelle Version finden Sie in der .NET 9-Version dieses Artikels.
WebApplication Fügt die folgende Middleware automatisch in Minimal-API-Anwendungen hinzu, abhängig von bestimmten Bedingungen:
-
UseDeveloperExceptionPagewird zuerst hinzugefügt, wennHostingEnvironmentgleich"Development"ist. -
UseRoutingwird zweitens hinzugefügt, wenn der BenutzercodeUseRoutingnoch nicht aufgerufen hat, und wenn Endpunkte konfiguriert sind, z. B.app.MapGet. -
UseEndpointswird am Ende der Middlewarepipeline hinzugefügt, wenn Endpunkte konfiguriert sind. -
UseAuthenticationwird unmittelbar nachUseRoutinghinzugefügt, wenn der BenutzercodeUseAuthenticationnoch nicht aufgerufen hat und wennIAuthenticationSchemeProviderim Dienstanbieter erkannt werden kann.IAuthenticationSchemeProviderwird standardmäßig hinzugefügt, wenn die VerwendungAddAuthenticationvon Diensten mitIServiceProviderIsServiceerkannt wird. -
UseAuthorizationwird als Nächstes hinzugefügt, wenn der BenutzercodeUseAuthorizationnoch nicht aufgerufen hat und wennIAuthorizationHandlerProviderim Dienstanbieter erkannt werden kann.IAuthorizationHandlerProviderwird standardmäßig hinzugefügt, wenn die VerwendungAddAuthorizationvon Diensten mitIServiceProviderIsServiceerkannt wird. - Benutzerkonfigurierte Middleware und Endpunkte werden zwischen
UseRoutingundUseEndpointshinzugefügt.
Nachfolgend sehen Sie den Code, der von der automatischen Middleware erzeugt wird, die zur App hinzugefügt wird:
if (isDevelopment)
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
if (isAuthenticationConfigured)
{
app.UseAuthentication();
}
if (isAuthorizationConfigured)
{
app.UseAuthorization();
}
// user middleware/endpoints
app.CustomMiddleware(...);
app.MapGet("/", () => "hello world");
// end user middleware/endpoints
app.UseEndpoints(e => {});
In einigen Fällen eignet sich die standardmäßige Middleware-Konfiguration nicht für die App und muss geändert werden. Beispielsweise sollte UseCors vor UseAuthentication und UseAuthorization aufgerufen werden. Die App muss UseAuthentication und UseAuthorization aufrufen, wenn UseCors aufgerufen wird:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Wenn Middleware ausgeführt werden muss, bevor der Routenabgleich erfolgt, muss UseRouting aufgerufen werden, und die Middleware muss vor dem Aufruf von UseRouting platziert werden.
UseEndpoints ist in diesem Fall nicht erforderlich, da es wie zuvor beschrieben automatisch hinzugefügt wird:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Beim Hinzufügen einer Terminal-Middleware:
- Die Middleware muss nach
UseEndpointshinzugefügt werden. - Die App muss
UseRoutingundUseEndpointsaufrufen, damit die Terminal-Middleware an der richtigen Position platziert werden kann.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
Terminal-Middleware ist Middleware, die ausgeführt wird, wenn kein Endpunkt die Anforderung verarbeitet.
WebApplication Fügt die folgende Middleware automatisch in Minimal-API-Anwendungen hinzu, abhängig von bestimmten Bedingungen:
-
UseDeveloperExceptionPagewird zuerst hinzugefügt, wennHostingEnvironmentgleich"Development"ist. -
UseRoutingwird zweitens hinzugefügt, wenn der BenutzercodeUseRoutingnoch nicht aufgerufen hat, und wenn Endpunkte konfiguriert sind, z. B.app.MapGet. -
UseEndpointswird am Ende der Middlewarepipeline hinzugefügt, wenn Endpunkte konfiguriert sind. -
UseAuthenticationwird unmittelbar nachUseRoutinghinzugefügt, wenn der BenutzercodeUseAuthenticationnoch nicht aufgerufen hat und wennIAuthenticationSchemeProviderim Dienstanbieter erkannt werden kann.IAuthenticationSchemeProviderwird standardmäßig hinzugefügt, wenn die VerwendungAddAuthenticationvon Diensten mitIServiceProviderIsServiceerkannt wird. -
UseAuthorizationwird als Nächstes hinzugefügt, wenn der BenutzercodeUseAuthorizationnoch nicht aufgerufen hat und wennIAuthorizationHandlerProviderim Dienstanbieter erkannt werden kann.IAuthorizationHandlerProviderwird standardmäßig hinzugefügt, wenn die VerwendungAddAuthorizationvon Diensten mitIServiceProviderIsServiceerkannt wird. - Benutzerkonfigurierte Middleware und Endpunkte werden zwischen
UseRoutingundUseEndpointshinzugefügt.
Nachfolgend sehen Sie den Code, der von der automatischen Middleware erzeugt wird, die zur App hinzugefügt wird:
if (isDevelopment)
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
if (isAuthenticationConfigured)
{
app.UseAuthentication();
}
if (isAuthorizationConfigured)
{
app.UseAuthorization();
}
// user middleware/endpoints
app.CustomMiddleware(...);
app.MapGet("/", () => "hello world");
// end user middleware/endpoints
app.UseEndpoints(e => {});
In einigen Fällen eignet sich die standardmäßige Middleware-Konfiguration nicht für die App und muss geändert werden. Beispielsweise sollte UseCors vor UseAuthentication und UseAuthorization aufgerufen werden. Die App muss UseAuthentication und UseAuthorization aufrufen, wenn UseCors aufgerufen wird:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Wenn Middleware ausgeführt werden muss, bevor der Routenabgleich erfolgt, muss UseRouting aufgerufen werden, und die Middleware muss vor dem Aufruf von UseRouting platziert werden.
UseEndpoints ist in diesem Fall nicht erforderlich, da es wie zuvor beschrieben automatisch hinzugefügt wird:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Beim Hinzufügen einer Terminal-Middleware:
- Die Middleware muss nach
UseEndpointshinzugefügt werden. - Die App muss
UseRoutingundUseEndpointsaufrufen, damit die Terminal-Middleware an der richtigen Position platziert werden kann.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
Terminal-Middleware ist Middleware, die ausgeführt wird, wenn kein Endpunkt die Anforderung verarbeitet.
Informationen über fälschungssichere Middleware in Minimal APIs finden Sie unter Verhindern von Cross-Site Request Forgery (XSRF/CSRF) Angriffen in ASP.NET Core.
Weitere Informationen zu Middleware finden Sie unter ASP.NET Core Middleware und der Liste der integrierten Middleware, die Anwendungen hinzugefügt werden kann.
Weitere Informationen zu minimalen APIs finden Sie in der Übersicht über APIs.