Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Toto není nejnovější verze tohoto článku. Aktuální verzi najdete ve verzi .NET 10 tohoto článku.
Upozorňující
Tato verze ASP.NET Core se už nepodporuje. Další informace najdete v zásadách podpory .NET a .NET Core. Aktuální verzi najdete v tomto článku ve verzi .NET 9.
WebApplication automaticky přidá následující middleware v aplikacích s minimálním rozhraním API v závislosti na určitých podmínkách:
-
UseDeveloperExceptionPageje přidána jako první, pokud jeHostingEnvironment."Development" -
UseRoutingse přidá sekundu, pokud se kód uživatele ještě nevolalUseRoutinga pokud jsou nakonfigurované koncové body, napříkladapp.MapGet. -
UseEndpointsse přidá na konec kanálu middlewaru, pokud jsou nakonfigurované nějaké koncové body. -
UseAuthenticationse přidá okamžitě poUseRoutingtom, co uživatelský kód ještě nezavolalUseAuthenticationa pokudIAuthenticationSchemeProviderje možné ho zjistit v poskytovateli služeb.IAuthenticationSchemeProviderje přidána ve výchozím nastavení při použitíAddAuthenticationa služby jsou zjištěny pomocíIServiceProviderIsService. -
UseAuthorizationse přidá dál, pokud kód uživatele ještě nezavolalUseAuthorizationa pokudIAuthorizationHandlerProviderje možné ho zjistit v poskytovateli služeb.IAuthorizationHandlerProviderje přidána ve výchozím nastavení při použitíAddAuthorizationa služby jsou zjištěny pomocíIServiceProviderIsService. - Mezi uživatelem nakonfigurovaný middleware a koncové body se přidají mezi
UseRoutingaUseEndpoints.
Následující kód je v podstatě to, co automatický middleware přidaný do aplikace vytvoří:
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 => {});
V některých případech není výchozí konfigurace middlewaru pro aplikaci správná a vyžaduje úpravy. Například UseCors by mělo být volána před UseAuthentication a UseAuthorization. Aplikace musí volat UseAuthentication a UseAuthorization pokud UseCors se volá:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Pokud by se měl middleware spustit před výskytem párování tras, UseRouting měl by být volána a middleware by měl být umístěn před voláním UseRouting.
UseEndpoints v tomto případě se nevyžaduje, protože se automaticky přidá, jak je popsáno výše:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Při přidávání middlewaru terminálu:
- Middleware musí být přidán za
UseEndpoints. - Aplikace musí volat
UseRouting,UseEndpointsaby middleware terminálu mohl být umístěn ve správném umístění.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
Middleware terminálu je middleware, který se spustí, pokud požadavek nezpracuje žádný koncový bod.
WebApplication automaticky přidá následující middleware v aplikacích s minimálním rozhraním API v závislosti na určitých podmínkách:
-
UseDeveloperExceptionPageje přidána jako první, pokud jeHostingEnvironment."Development" -
UseRoutingse přidá sekundu, pokud se kód uživatele ještě nevolalUseRoutinga pokud jsou nakonfigurované koncové body, napříkladapp.MapGet. -
UseEndpointsse přidá na konec kanálu middlewaru, pokud jsou nakonfigurované nějaké koncové body. -
UseAuthenticationse přidá okamžitě poUseRoutingtom, co uživatelský kód ještě nezavolalUseAuthenticationa pokudIAuthenticationSchemeProviderje možné ho zjistit v poskytovateli služeb.IAuthenticationSchemeProviderje přidána ve výchozím nastavení při použitíAddAuthenticationa služby jsou zjištěny pomocíIServiceProviderIsService. -
UseAuthorizationse přidá dál, pokud kód uživatele ještě nezavolalUseAuthorizationa pokudIAuthorizationHandlerProviderje možné ho zjistit v poskytovateli služeb.IAuthorizationHandlerProviderje přidána ve výchozím nastavení při použitíAddAuthorizationa služby jsou zjištěny pomocíIServiceProviderIsService. - Mezi uživatelem nakonfigurovaný middleware a koncové body se přidají mezi
UseRoutingaUseEndpoints.
Následující kód je v podstatě to, co automatický middleware přidaný do aplikace vytvoří:
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 => {});
V některých případech není výchozí konfigurace middlewaru pro aplikaci správná a vyžaduje úpravy. Například UseCors by mělo být volána před UseAuthentication a UseAuthorization. Aplikace musí volat UseAuthentication a UseAuthorization pokud UseCors se volá:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Pokud by se měl middleware spustit před výskytem párování tras, UseRouting měl by být volána a middleware by měl být umístěn před voláním UseRouting.
UseEndpoints v tomto případě se nevyžaduje, protože se automaticky přidá, jak je popsáno výše:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Při přidávání middlewaru terminálu:
- Middleware musí být přidán za
UseEndpoints. - Aplikace musí volat
UseRouting,UseEndpointsaby middleware terminálu mohl být umístěn ve správném umístění.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
Middleware terminálu je middleware, který se spustí, pokud požadavek nezpracuje žádný koncový bod.
Informace o middlewaru antiforgery v minimálních rozhraních API najdete v tématu Prevence útoků XSRF/CSRF (Cross-Site Request Forgery) v ASP.NET Core.
Další informace o middlewaru najdete v tématu ASP.NET Core Middleware a seznam předdefinovaných middlewarů , které je možné přidat do aplikací.
Další informace o minimálních rozhraních API najdete v přehledu rozhraní API.