Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Bu, bu makalenin en son sürümü değildir. Geçerli sürüm için bu makalenin .NET 10 sürümüne bakın.
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 9 sürümüne bakın.
WebApplication belirli koşullara bağlı olarak minimum API uygulamalarına otomatik olarak aşağıdaki ara yazılımı ekler:
-
UseDeveloperExceptionPage, olduğundaHostingEnvironment"Development"ilk olarak eklenir. -
UseRouting, kullanıcı kodu henüz çağrılmazsaUseRoutingve örneğinapp.MapGetyapı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. -
UseAuthenticationkullanıcı kodu henüz çağrılmazsaUseRoutingve hizmet sağlayıcısında algılanabilirseUseAuthenticationhemen sonraIAuthenticationSchemeProvidereklenir.IAuthenticationSchemeProviderkullanılırkenAddAuthenticationvarsayılan olarak eklenir ve kullanılarak hizmetler algılanırIServiceProviderIsService. -
UseAuthorization, kullanıcı kodu henüz çağrılmazsaUseAuthorizationve hizmet sağlayıcısında algılanabilirseIAuthorizationHandlerProvidereklenir.IAuthorizationHandlerProviderkullanılırkenAddAuthorizationvarsayı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
UseRoutingarasınaUseEndpointseklenir.
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 UseAuthenticationöncesinde UseAuthorization çağrılmalıdır. Uygulamanın çağrısı UseAuthenticationUseAuthorization 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
UseEndpointseklenmelidir. - Terminal ara yazılımının doğru konuma yerleştirilebilmesi için uygulamanın araması
UseRoutingUseEndpointsgerekir.
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 belirli koşullara bağlı olarak minimum API uygulamalarına otomatik olarak aşağıdaki ara yazılımı ekler:
-
UseDeveloperExceptionPage, olduğundaHostingEnvironment"Development"ilk olarak eklenir. -
UseRouting, kullanıcı kodu henüz çağrılmazsaUseRoutingve örneğinapp.MapGetyapı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. -
UseAuthenticationkullanıcı kodu henüz çağrılmazsaUseRoutingve hizmet sağlayıcısında algılanabilirseUseAuthenticationhemen sonraIAuthenticationSchemeProvidereklenir.IAuthenticationSchemeProviderkullanılırkenAddAuthenticationvarsayılan olarak eklenir ve kullanılarak hizmetler algılanırIServiceProviderIsService. -
UseAuthorization, kullanıcı kodu henüz çağrılmazsaUseAuthorizationve hizmet sağlayıcısında algılanabilirseIAuthorizationHandlerProvidereklenir.IAuthorizationHandlerProviderkullanılırkenAddAuthorizationvarsayı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
UseRoutingarasınaUseEndpointseklenir.
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 UseAuthenticationöncesinde UseAuthorization çağrılmalıdır. Uygulamanın çağrısı UseAuthenticationUseAuthorization 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
UseEndpointseklenmelidir. - Terminal ara yazılımının doğru konuma yerleştirilebilmesi için uygulamanın araması
UseRoutingUseEndpointsgerekir.
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. API'lere genel bakış.
ASP.NET Core