Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
Dit is niet de nieuwste versie van dit artikel. Zie de .NET 10-versie van dit artikel voor de huidige release.
Waarschuwing
Deze versie van ASP.NET Core wordt niet meer ondersteund. Zie het .NET- en .NET Core-ondersteuningsbeleid voor meer informatie. Zie de .NET 9-versie van dit artikel voor de huidige release.
WebApplication voegt automatisch de volgende middleware toe in Minimale API-toepassingen , afhankelijk van bepaalde voorwaarden:
-
UseDeveloperExceptionPagewordt eerst toegevoegd wanneer hetHostingEnvironmentis"Development". -
UseRoutingwordt tweede toegevoegd als de gebruikerscode nog niet is aangeroepenUseRoutingen als er bijvoorbeeldapp.MapGeteindpunten zijn geconfigureerd. -
UseEndpointswordt toegevoegd aan het einde van de middleware-pijplijn als er eindpunten zijn geconfigureerd. -
UseAuthenticationwordt onmiddellijk toegevoegd nadatUseRoutingde gebruikerscode nog niet is aangeroepenUseAuthenticationen ofIAuthenticationSchemeProviderdeze kan worden gedetecteerd in de serviceprovider.IAuthenticationSchemeProviderwordt standaard toegevoegd wanneer u services gebruiktAddAuthenticationen services worden gedetecteerd met behulp vanIServiceProviderIsService. -
UseAuthorizationwordt vervolgens toegevoegd als de gebruikerscode nog niet is aangeroepenUseAuthorizationen ofIAuthorizationHandlerProviderdeze kan worden gedetecteerd in de serviceprovider.IAuthorizationHandlerProviderwordt standaard toegevoegd wanneer u services gebruiktAddAuthorizationen services worden gedetecteerd met behulp vanIServiceProviderIsService. - Door de gebruiker geconfigureerde middleware en eindpunten worden toegevoegd tussen
UseRoutingenUseEndpoints.
De volgende code is effectief wat de automatische middleware die aan de app wordt toegevoegd, produceert:
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 sommige gevallen is de standaard-middlewareconfiguratie niet juist voor de app en moet deze worden gewijzigd. Moet bijvoorbeeld UseCors worden aangeroepen voor UseAuthentication en UseAuthorization. De app moet worden aangeroepen UseAuthentication en UseAuthorization als UseCors deze wordt aangeroepen:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Als middleware moet worden uitgevoerd voordat routekoppeling plaatsvindt, UseRouting moet u worden aangeroepen en moet de middleware worden geplaatst voordat de aanroep naar UseRouting.
UseEndpoints is in dit geval niet vereist, omdat deze automatisch wordt toegevoegd zoals eerder beschreven:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Wanneer u een terminal-middleware toevoegt:
- De middleware moet worden toegevoegd na
UseEndpoints. - De app moet worden aangeroepen
UseRoutingenUseEndpointszodat de terminal-middleware op de juiste locatie kan worden geplaatst.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
Terminal-middleware is middleware die wordt uitgevoerd als er geen eindpunt de aanvraag verwerkt.
WebApplication voegt automatisch de volgende middleware toe in Minimale API-toepassingen , afhankelijk van bepaalde voorwaarden:
-
UseDeveloperExceptionPagewordt eerst toegevoegd wanneer hetHostingEnvironmentis"Development". -
UseRoutingwordt tweede toegevoegd als de gebruikerscode nog niet is aangeroepenUseRoutingen als er bijvoorbeeldapp.MapGeteindpunten zijn geconfigureerd. -
UseEndpointswordt toegevoegd aan het einde van de middleware-pijplijn als er eindpunten zijn geconfigureerd. -
UseAuthenticationwordt onmiddellijk toegevoegd nadatUseRoutingde gebruikerscode nog niet is aangeroepenUseAuthenticationen ofIAuthenticationSchemeProviderdeze kan worden gedetecteerd in de serviceprovider.IAuthenticationSchemeProviderwordt standaard toegevoegd wanneer u services gebruiktAddAuthenticationen services worden gedetecteerd met behulp vanIServiceProviderIsService. -
UseAuthorizationwordt vervolgens toegevoegd als de gebruikerscode nog niet is aangeroepenUseAuthorizationen ofIAuthorizationHandlerProviderdeze kan worden gedetecteerd in de serviceprovider.IAuthorizationHandlerProviderwordt standaard toegevoegd wanneer u services gebruiktAddAuthorizationen services worden gedetecteerd met behulp vanIServiceProviderIsService. - Door de gebruiker geconfigureerde middleware en eindpunten worden toegevoegd tussen
UseRoutingenUseEndpoints.
De volgende code is effectief wat de automatische middleware die aan de app wordt toegevoegd, produceert:
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 sommige gevallen is de standaard-middlewareconfiguratie niet juist voor de app en moet deze worden gewijzigd. Moet bijvoorbeeld UseCors worden aangeroepen voor UseAuthentication en UseAuthorization. De app moet worden aangeroepen UseAuthentication en UseAuthorization als UseCors deze wordt aangeroepen:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Als middleware moet worden uitgevoerd voordat routekoppeling plaatsvindt, UseRouting moet u worden aangeroepen en moet de middleware worden geplaatst voordat de aanroep naar UseRouting.
UseEndpoints is in dit geval niet vereist, omdat deze automatisch wordt toegevoegd zoals eerder beschreven:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Wanneer u een terminal-middleware toevoegt:
- De middleware moet worden toegevoegd na
UseEndpoints. - De app moet worden aangeroepen
UseRoutingenUseEndpointszodat de terminal-middleware op de juiste locatie kan worden geplaatst.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
Terminal-middleware is middleware die wordt uitgevoerd als er geen eindpunt de aanvraag verwerkt.
Zie Cross-Site Request Forgery-aanvallen (XSRF/CSRF) voorkomen in ASP.NET Core voor meer informatie over antiforgery-middleware in minimale API's
Zie ASP.NET Core Middleware en de lijst met ingebouwde middleware die kan worden toegevoegd aan toepassingen voor meer informatie over middleware.
Zie het overzicht van API's voor meer informatie over minimale API's.