Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga
Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z aktualną wersją, zobacz artykuł w wersji .NET 10.
WebApplication program automatycznie dodaje następujące oprogramowanie pośredniczące w aplikacjach interfejsu API w zależności od określonych warunków:
-
UseDeveloperExceptionPageelement jest dodawany jako pierwszy, gdy parametr ma wartośćHostingEnvironment"Development". -
UseRoutingJest dodawany drugi, jeśli kod użytkownika nie został jeszcze wywołanyUseRoutingi jeśli istnieją skonfigurowane punkty końcowe, na przykładapp.MapGet. -
UseEndpointsJest dodawany na końcu potoku oprogramowania pośredniczącego, jeśli są skonfigurowane jakiekolwiek punkty końcowe. -
UseAuthenticationjest dodawany natychmiast poUseRoutingtym, jak kod użytkownika nie został jeszcze wywołanyUseAuthenticationi czyIAuthenticationSchemeProvidermożna go wykryć u dostawcy usług.IAuthenticationSchemeProviderprogram jest domyślnie dodawany podczas korzystania z usługAddAuthentication, a usługa jest wykrywana przy użyciu poleceniaIServiceProviderIsService. -
UseAuthorizationZostanie dodany dalej, jeśli kod użytkownika nie został jeszcze wywołanyUseAuthorizationi czyIAuthorizationHandlerProvidermożna go wykryć u dostawcy usług.IAuthorizationHandlerProviderprogram 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
UseRoutingiUseEndpoints.
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ę
UseRoutingiUseEndpointstak, 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 aplikacjach interfejsu API w zależności od określonych warunków:
-
UseDeveloperExceptionPageelement jest dodawany jako pierwszy, gdy parametr ma wartośćHostingEnvironment"Development". -
UseRoutingJest dodawany drugi, jeśli kod użytkownika nie został jeszcze wywołanyUseRoutingi jeśli istnieją skonfigurowane punkty końcowe, na przykładapp.MapGet. -
UseEndpointsJest dodawany na końcu potoku oprogramowania pośredniczącego, jeśli są skonfigurowane jakiekolwiek punkty końcowe. -
UseAuthenticationjest dodawany natychmiast poUseRoutingtym, jak kod użytkownika nie został jeszcze wywołanyUseAuthenticationi czyIAuthenticationSchemeProvidermożna go wykryć u dostawcy usług.IAuthenticationSchemeProviderprogram jest domyślnie dodawany podczas korzystania z usługAddAuthentication, a usługa jest wykrywana przy użyciu poleceniaIServiceProviderIsService. -
UseAuthorizationZostanie dodany dalej, jeśli kod użytkownika nie został jeszcze wywołanyUseAuthorizationi czyIAuthorizationHandlerProvidermożna go wykryć u dostawcy usług.IAuthorizationHandlerProviderprogram 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
UseRoutingiUseEndpoints.
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ę
UseRoutingiUseEndpointstak, 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 Omówienie interfejsów API.