Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendayakan CORS dalam API Web Teras ASP.NET?

Bagaimana untuk Mendayakan CORS dalam API Web Teras ASP.NET?

Patricia Arquette
Patricia Arquetteasal
2025-01-24 18:21:14342semak imbas

How to Enable CORS in ASP.NET Core Web API?

Mengkonfigurasi Perkongsian Sumber Rentas Asal (CORS) dalam API Web Teras ASP.NET

Panduan ini menunjukkan dua pendekatan untuk mendayakan CORS dalam API Web Teras ASP.NET anda: menggunakan perisian tengah dan kaedah suntikan pengepala manual.

Kaedah 1: Konfigurasi CORS Berdasarkan Perisian Tengah

Pendekatan paling mudah dan disyorkan ialah memanfaatkan Microsoft.AspNetCore.Cors pakej NuGet.

  1. Pasang Pakej:

    <code>Install-Package Microsoft.AspNetCore.Cors</code>
  2. Konfigurasikan Perkhidmatan CORS:

    Dalam fail Startup.cs anda, daftarkan perkhidmatan CORS:

    <code class="language-csharp">public void ConfigureServices(IServiceCollection services)
    {
        services.AddCors();
        // ... other service configurations
    }</code>
  3. Gunakan CORS Middleware:

    Dalam kaedah Configure, gunakan perisian tengah app.UseCors untuk mentakrifkan asal yang dibenarkan dan kaedah HTTP. Gantikan "http://example.com" dengan asal usul sebenar anda yang dibenarkan.

    <code class="language-csharp">public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ... )
    {
        app.UseCors(options => options.WithOrigins("http://example.com").AllowAnyMethod());
        // ... other middleware configurations
    }</code>

Kaedah 2: Suntikan Pengepala Manual (Kaedah Fallback)

Jika pendekatan perisian tengah terbukti tidak berkesan, anda boleh terus menambah pengepala CORS pada respons HTTP anda. Ini biasanya kurang diutamakan kerana kebolehselenggaraan yang berkurangan.

<code class="language-csharp">app.Use(async (context, next) =>
{
    context.Response.Headers.Add("Access-Control-Allow-Origin", "http://example.com");
    context.Response.Headers.Add("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE");
    context.Response.Headers.Add("Access-Control-Allow-Headers", "X-PINGOTHER, Content-Type, Authorization");

    await next.Invoke();
});</code>

Ingat untuk meletakkan middleware ini sebelum app.UseRouting() atau penghalaan pengendalian middleware yang setara.

Pertimbangan Penting:

  • *Wildcard Origins (`):** Avoid using the wildcard"*"forWithOrigins` dalam persekitaran pengeluaran. Ini membuka API anda kepada permintaan daripada mana-mana asal, yang menimbulkan risiko keselamatan yang ketara.
  • Pengepala Khusus: Tentukan dengan teliti pengepala yang dibenarkan menggunakan AddCustomHeader atau yang setara dalam kaedah pilihan anda. Sentiasa sertakan "Content-Type".
  • Konfigurasi Terperinci: Untuk kawalan yang lebih terperinci, teroka model dasar CORS yang ditawarkan oleh pakej Microsoft.AspNetCore.Cors. Ini membenarkan dasar yang dinamakan dan senario yang lebih kompleks.

Panduan dipertingkat ini memberikan penjelasan yang lebih jelas dan struktur yang dipertingkatkan untuk melaksanakan CORS dalam API Web Teras ASP.NET. Pilih kaedah yang paling sesuai dengan keperluan anda dan utamakan amalan terbaik keselamatan.

Atas ialah kandungan terperinci Bagaimana untuk Mendayakan CORS dalam API Web Teras ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn