Oprogramowanie pośredniczące w minimalnych aplikacjach interfejsu API
Uwaga
Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.
Ważne
Te informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany, zanim zostanie wydany komercyjnie. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.
WebApplication
program automatycznie dodaje następujące oprogramowanie pośredniczące w Minimal API applications
zależności od określonych warunków:
UseDeveloperExceptionPage
element jest dodawany jako pierwszy, gdy parametr ma wartośćHostingEnvironment
"Development"
.UseRouting
Jest dodawany drugi, jeśli kod użytkownika nie został jeszcze wywołanyUseRouting
i jeśli istnieją skonfigurowane punkty końcowe, na przykładapp.MapGet
.UseEndpoints
Jest dodawany na końcu potoku oprogramowania pośredniczącego, jeśli są skonfigurowane jakiekolwiek punkty końcowe.UseAuthentication
jest dodawany natychmiast poUseRouting
tym, jak kod użytkownika nie został jeszcze wywołanyUseAuthentication
i czyIAuthenticationSchemeProvider
można go wykryć u dostawcy usług.IAuthenticationSchemeProvider
program jest domyślnie dodawany podczas korzystania z usługAddAuthentication
, a usługa jest wykrywana przy użyciu poleceniaIServiceProviderIsService
.UseAuthorization
Zostanie dodany dalej, jeśli kod użytkownika nie został jeszcze wywołanyUseAuthorization
i czyIAuthorizationHandlerProvider
można go wykryć u dostawcy usług.IAuthorizationHandlerProvider
program jest domyślnie dodawany podczas korzystania z usługAddAuthorization
, a usługa jest wykrywana przy użyciu poleceniaIServiceProviderIsService
.- Oprogramowanie pośredniczące skonfigurowane przez użytkownika i punkty końcowe są dodawane między elementami
UseRouting
iUseEndpoints
.
Poniższy kod jest w rzeczywistości tym, co tworzy automatyczne oprogramowanie pośredniczące dodawane do aplikacji:
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 => {});
W niektórych przypadkach domyślna konfiguracja oprogramowania pośredniczącego nie jest poprawna dla aplikacji i wymaga modyfikacji. Na przykład UseCors należy wywołać metodę przed UseAuthentication i UseAuthorization. Aplikacja musi wywołać metodę UseAuthentication
, a UseAuthorization
jeśli UseCors
jest wywoływana:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Jeśli oprogramowanie pośredniczące powinno być uruchamiane przed rozpoczęciem dopasowywania tras, UseRouting należy wywołać metodę , a oprogramowanie pośredniczące powinno zostać umieszczone przed wywołaniem metody UseRouting
. UseEndpoints nie jest wymagany w tym przypadku, ponieważ jest automatycznie dodawany zgodnie z wcześniejszym opisem:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Podczas dodawania oprogramowania pośredniczącego terminalu:
- Oprogramowanie pośredniczące musi zostać dodane po .
UseEndpoints
- Aplikacja musi wywołać metodę
UseRouting
iUseEndpoints
tak, aby oprogramowanie pośredniczące terminalu można było umieścić w odpowiedniej lokalizacji.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
Oprogramowanie pośredniczące terminala to oprogramowanie pośredniczące uruchamiane, jeśli żaden punkt końcowy nie obsługuje żądania.
WebApplication
program automatycznie dodaje następujące oprogramowanie pośredniczące w Minimal API applications
zależności od określonych warunków:
UseDeveloperExceptionPage
element jest dodawany jako pierwszy, gdy parametr ma wartośćHostingEnvironment
"Development"
.UseRouting
Jest dodawany drugi, jeśli kod użytkownika nie został jeszcze wywołanyUseRouting
i jeśli istnieją skonfigurowane punkty końcowe, na przykładapp.MapGet
.UseEndpoints
Jest dodawany na końcu potoku oprogramowania pośredniczącego, jeśli są skonfigurowane jakiekolwiek punkty końcowe.UseAuthentication
jest dodawany natychmiast poUseRouting
tym, jak kod użytkownika nie został jeszcze wywołanyUseAuthentication
i czyIAuthenticationSchemeProvider
można go wykryć u dostawcy usług.IAuthenticationSchemeProvider
program jest domyślnie dodawany podczas korzystania z usługAddAuthentication
, a usługa jest wykrywana przy użyciu poleceniaIServiceProviderIsService
.UseAuthorization
Zostanie dodany dalej, jeśli kod użytkownika nie został jeszcze wywołanyUseAuthorization
i czyIAuthorizationHandlerProvider
można go wykryć u dostawcy usług.IAuthorizationHandlerProvider
program jest domyślnie dodawany podczas korzystania z usługAddAuthorization
, a usługa jest wykrywana przy użyciu poleceniaIServiceProviderIsService
.- Oprogramowanie pośredniczące skonfigurowane przez użytkownika i punkty końcowe są dodawane między elementami
UseRouting
iUseEndpoints
.
Poniższy kod jest w rzeczywistości tym, co tworzy automatyczne oprogramowanie pośredniczące dodawane do aplikacji:
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 => {});
W niektórych przypadkach domyślna konfiguracja oprogramowania pośredniczącego nie jest poprawna dla aplikacji i wymaga modyfikacji. Na przykład UseCors należy wywołać metodę przed UseAuthentication i UseAuthorization. Aplikacja musi wywołać metodę UseAuthentication
, a UseAuthorization
jeśli UseCors
jest wywoływana:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Jeśli oprogramowanie pośredniczące powinno być uruchamiane przed rozpoczęciem dopasowywania tras, UseRouting należy wywołać metodę , a oprogramowanie pośredniczące powinno zostać umieszczone przed wywołaniem metody UseRouting
. UseEndpoints nie jest wymagany w tym przypadku, ponieważ jest automatycznie dodawany zgodnie z wcześniejszym opisem:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Podczas dodawania oprogramowania pośredniczącego terminalu:
- Oprogramowanie pośredniczące musi zostać dodane po .
UseEndpoints
- Aplikacja musi wywołać metodę
UseRouting
iUseEndpoints
tak, aby oprogramowanie pośredniczące terminalu można było umieścić w odpowiedniej lokalizacji.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
Oprogramowanie pośredniczące terminala to oprogramowanie pośredniczące uruchamiane, jeśli żaden punkt końcowy nie obsługuje żądania.
Aby uzyskać informacje na temat oprogramowania pośredniczącego chroniącego przed fałszerzami w minimalnych interfejsach API, zobacz Zapobieganie atakom fałszowania żądań między witrynami (XSRF/CSRF) w ASP.NET Core
Aby uzyskać więcej informacji na temat oprogramowania pośredniczącego, zobacz ASP.NET Core Middleware oraz listę wbudowanego oprogramowania pośredniczącego, które można dodać do aplikacji.
Aby uzyskać więcej informacji na temat minimalnych interfejsów API, zobacz Minimal APIs overview
.