Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Catatan
Ini bukan versi terbaru dari artikel ini. Untuk rilis saat ini, lihat versi .NET 10 dari artikel ini.
Peringatan
Versi ASP.NET Core ini tidak lagi didukung. Untuk informasi selengkapnya, lihat Kebijakan Dukungan .NET dan .NET Core. Untuk rilis saat ini, lihat versi .NET 9 dari artikel ini.
WebApplication secara otomatis menambahkan middleware berikut dalam aplikasi API Minimal tergantung pada kondisi tertentu:
-
UseDeveloperExceptionPageditambahkan terlebih dahulu ketikaHostingEnvironmentadalah"Development". -
UseRoutingditambahkan kedua jika kode pengguna belum memanggilUseRoutingdan jika ada titik akhir yang dikonfigurasi, misalnyaapp.MapGet. -
UseEndpointsditambahkan di akhir alur middleware jika ada titik akhir yang dikonfigurasi. -
UseAuthenticationditambahkan segera setelahUseRoutingjika kode pengguna belum memanggilUseAuthenticationdan apakahIAuthenticationSchemeProviderdapat terdeteksi di penyedia layanan.IAuthenticationSchemeProviderditambahkan secara default saat menggunakanAddAuthentication, dan layanan terdeteksi menggunakanIServiceProviderIsService. -
UseAuthorizationditambahkan berikutnya jika kode pengguna belum memanggilUseAuthorizationdan apakahIAuthorizationHandlerProviderdapat terdeteksi di penyedia layanan.IAuthorizationHandlerProviderditambahkan secara default saat menggunakanAddAuthorization, dan layanan terdeteksi menggunakanIServiceProviderIsService. - Middleware dan titik akhir yang dikonfigurasi pengguna ditambahkan antara
UseRoutingdanUseEndpoints.
Kode berikut secara efektif adalah apa yang ditambahkan middleware otomatis ke aplikasi:
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 => {});
Dalam beberapa kasus, konfigurasi middleware default tidak benar untuk aplikasi dan memerlukan modifikasi. Misalnya, UseCors harus dipanggil sebelum UseAuthentication dan UseAuthorization. Aplikasi perlu memanggil UseAuthentication dan UseAuthorization jika UseCors dipanggil:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Jika middleware harus dijalankan sebelum pencocokan rute terjadi, UseRouting harus dipanggil dan middleware harus ditempatkan sebelum panggilan ke UseRouting.
UseEndpoints tidak diperlukan dalam kasus ini karena ditambahkan secara otomatis seperti yang dijelaskan sebelumnya:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Saat menambahkan middleware terminal:
- Middleware harus ditambahkan setelah
UseEndpoints. - Aplikasi perlu memanggil
UseRoutingdanUseEndpointssehingga middleware terminal dapat ditempatkan di lokasi yang benar.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
Middleware terminal adalah middleware yang berjalan jika tidak ada titik akhir yang menangani permintaan.
WebApplication secara otomatis menambahkan middleware berikut dalam aplikasi API Minimal tergantung pada kondisi tertentu:
-
UseDeveloperExceptionPageditambahkan terlebih dahulu ketikaHostingEnvironmentadalah"Development". -
UseRoutingditambahkan kedua jika kode pengguna belum memanggilUseRoutingdan jika ada titik akhir yang dikonfigurasi, misalnyaapp.MapGet. -
UseEndpointsditambahkan di akhir alur middleware jika ada titik akhir yang dikonfigurasi. -
UseAuthenticationditambahkan segera setelahUseRoutingjika kode pengguna belum memanggilUseAuthenticationdan apakahIAuthenticationSchemeProviderdapat terdeteksi di penyedia layanan.IAuthenticationSchemeProviderditambahkan secara default saat menggunakanAddAuthentication, dan layanan terdeteksi menggunakanIServiceProviderIsService. -
UseAuthorizationditambahkan berikutnya jika kode pengguna belum memanggilUseAuthorizationdan apakahIAuthorizationHandlerProviderdapat terdeteksi di penyedia layanan.IAuthorizationHandlerProviderditambahkan secara default saat menggunakanAddAuthorization, dan layanan terdeteksi menggunakanIServiceProviderIsService. - Middleware dan titik akhir yang dikonfigurasi pengguna ditambahkan antara
UseRoutingdanUseEndpoints.
Kode berikut secara efektif adalah apa yang ditambahkan middleware otomatis ke aplikasi:
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 => {});
Dalam beberapa kasus, konfigurasi middleware default tidak benar untuk aplikasi dan memerlukan modifikasi. Misalnya, UseCors harus dipanggil sebelum UseAuthentication dan UseAuthorization. Aplikasi perlu memanggil UseAuthentication dan UseAuthorization jika UseCors dipanggil:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Jika middleware harus dijalankan sebelum pencocokan rute terjadi, UseRouting harus dipanggil dan middleware harus ditempatkan sebelum panggilan ke UseRouting.
UseEndpoints tidak diperlukan dalam kasus ini karena ditambahkan secara otomatis seperti yang dijelaskan sebelumnya:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Saat menambahkan middleware terminal:
- Middleware harus ditambahkan setelah
UseEndpoints. - Aplikasi perlu memanggil
UseRoutingdanUseEndpointssehingga middleware terminal dapat ditempatkan di lokasi yang benar.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
Middleware terminal adalah middleware yang berjalan jika tidak ada titik akhir yang menangani permintaan.
Untuk informasi tentang middleware antiforgery di API Minimal, lihat Mencegah serangan Pemalsuan Permintaan Lintas Situs (XSRF/CSRF) di ASP.NET Core
Untuk informasi selengkapnya tentang middleware, lihat ASP.NET Core Middleware, dan daftar middleware bawaan yang dapat ditambahkan ke aplikasi.
Untuk informasi selengkapnya tentang API Minimal, lihat Gambaran umum API.
ASP.NET Core