Minimal API uygulamalarında ara yazılım
Uyarı
ASP.NET Core'un bu sürümü artık desteklenmiyor. Daha fazla bilgi için bkz . .NET ve .NET Core Destek İlkesi. Geçerli sürüm için bu makalenin .NET 8 sürümüne bakın.
WebApplication
aşağıdaki ara yazılımı Minimal API applications
belirli koşullara bağlı olarak otomatik olarak ekler:
UseDeveloperExceptionPage
, olduğundaHostingEnvironment
"Development"
ilk olarak eklenir.UseRouting
, kullanıcı kodu henüz çağrılmazsaUseRouting
ve örneğinapp.MapGet
yapılandırılmış uç noktalar varsa eklenir.UseEndpoints
, herhangi bir uç nokta yapılandırılırsa ara yazılım işlem hattının sonuna eklenir.UseAuthentication
kullanıcı kodu henüz çağrılmazsaUseAuthentication
ve hizmet sağlayıcısında algılanabilirseIAuthenticationSchemeProvider
hemen sonraUseRouting
eklenir.IAuthenticationSchemeProvider
kullanılırkenAddAuthentication
varsayılan olarak eklenir ve kullanılarak hizmetler algılanırIServiceProviderIsService
.UseAuthorization
, kullanıcı kodu henüz çağrılmazsaUseAuthorization
ve hizmet sağlayıcısında algılanabilirseIAuthorizationHandlerProvider
eklenir.IAuthorizationHandlerProvider
kullanılırkenAddAuthorization
varsayılan olarak eklenir ve kullanılarak hizmetler algılanırIServiceProviderIsService
.- Kullanıcı tarafından yapılandırılmış ara yazılım ve uç noktalar ile
UseEndpoints
arasınaUseRouting
eklenir.
Aşağıdaki kod, uygulamaya eklenen otomatik ara yazılımların etkili bir şekilde ürettiği koddur:
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 => {});
Bazı durumlarda, varsayılan ara yazılım yapılandırması uygulama için doğru değildir ve değişiklik gerektirir. Örneğin, UseCors ve UseAuthorizationöncesinde UseAuthentication çağrılmalıdır. Uygulamanın çağrısı UseAuthentication
UseAuthorization
ve çağrılıp çağrılmaması UseCors
gerekir:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Yol eşleştirme gerçekleşmeden önce ara yazılım çalıştırılmalıdır, UseRouting çağrılmalı ve ara yazılım çağrısından UseRouting
önce yerleştirilmelidir. UseEndpoints daha önce açıklandığı gibi otomatik olarak eklendiğinden bu durumda gerekli değildir:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Terminal ara yazılımı eklerken:
- Ara yazılım, sonrasında
UseEndpoints
eklenmelidir. - Terminal ara yazılımının doğru konuma yerleştirilebilmesi için uygulamanın araması
UseRouting
UseEndpoints
gerekir.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
Terminal ara yazılımı, isteği hiçbir uç nokta işlemezse çalışan ara yazılımdır.
WebApplication
aşağıdaki ara yazılımı Minimal API applications
belirli koşullara bağlı olarak otomatik olarak ekler:
UseDeveloperExceptionPage
, olduğundaHostingEnvironment
"Development"
ilk olarak eklenir.UseRouting
, kullanıcı kodu henüz çağrılmazsaUseRouting
ve örneğinapp.MapGet
yapılandırılmış uç noktalar varsa eklenir.UseEndpoints
, herhangi bir uç nokta yapılandırılırsa ara yazılım işlem hattının sonuna eklenir.UseAuthentication
kullanıcı kodu henüz çağrılmazsaUseAuthentication
ve hizmet sağlayıcısında algılanabilirseIAuthenticationSchemeProvider
hemen sonraUseRouting
eklenir.IAuthenticationSchemeProvider
kullanılırkenAddAuthentication
varsayılan olarak eklenir ve kullanılarak hizmetler algılanırIServiceProviderIsService
.UseAuthorization
, kullanıcı kodu henüz çağrılmazsaUseAuthorization
ve hizmet sağlayıcısında algılanabilirseIAuthorizationHandlerProvider
eklenir.IAuthorizationHandlerProvider
kullanılırkenAddAuthorization
varsayılan olarak eklenir ve kullanılarak hizmetler algılanırIServiceProviderIsService
.- Kullanıcı tarafından yapılandırılmış ara yazılım ve uç noktalar ile
UseEndpoints
arasınaUseRouting
eklenir.
Aşağıdaki kod, uygulamaya eklenen otomatik ara yazılımların etkili bir şekilde ürettiği koddur:
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 => {});
Bazı durumlarda, varsayılan ara yazılım yapılandırması uygulama için doğru değildir ve değişiklik gerektirir. Örneğin, UseCors ve UseAuthorizationöncesinde UseAuthentication çağrılmalıdır. Uygulamanın çağrısı UseAuthentication
UseAuthorization
ve çağrılıp çağrılmaması UseCors
gerekir:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Yol eşleştirme gerçekleşmeden önce ara yazılım çalıştırılmalıdır, UseRouting çağrılmalı ve ara yazılım çağrısından UseRouting
önce yerleştirilmelidir. UseEndpoints daha önce açıklandığı gibi otomatik olarak eklendiğinden bu durumda gerekli değildir:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Terminal ara yazılımı eklerken:
- Ara yazılım, sonrasında
UseEndpoints
eklenmelidir. - Terminal ara yazılımının doğru konuma yerleştirilebilmesi için uygulamanın araması
UseRouting
UseEndpoints
gerekir.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
Terminal ara yazılımı, isteği hiçbir uç nokta işlemezse çalışan ara yazılımdır.
En Düşük API'lerde sahteciliğe karşı koruma ara yazılımı hakkında bilgi için bkz . ASP.NET Core'da Siteler Arası İstek Sahteciliği (XSRF/CSRF) saldırılarını önleme
Ara yazılım hakkında daha fazla bilgi için bkz . ASP.NET Core Ara Yazılımı ve uygulamalara eklenebilen yerleşik ara yazılım listesi.
Minimum API'ler hakkında daha fazla bilgi için bkz Minimal APIs overview
. .
ASP.NET Core