Di web.config saya, saya ingin menentukan lebih dari satu domain untuk access-control-allow-origin
direktif. Saya tidak ingin menggunakan *
. Saya sudah mencoba sintaks ini:
<add name="Access-Control-Allow-Origin" value="http://localhost:1506, http://localhost:1502" />
yang ini
<add name="Access-Control-Allow-Origin" value="http://localhost:1506 http://localhost:1502" />
yang ini
<add name="Access-Control-Allow-Origin" value="http://localhost:1506; http://localhost:1502" />
dan yang satu ini
<add name="Access-Control-Allow-Origin" value="http://localhost:1506" />
<add name="Access-Control-Allow-Origin" value="http://localhost:1502" />
tapi tidak ada yang berhasil. Apa sintaks yang benar?
asp.net
iis
cors
web-config
Sam
sumber
sumber
*
nilai yang memungkinkan asal manapun untuk mengakses sumber daya. Namun pertanyaan awal menanyakan tentang memasukkan sekumpulan domain ke daftar putih.Untuk IIS 7.5+ dan Rewrite 2.0 Anda dapat menggunakan:
Menjelaskan bagian variabel server
RESPONSE_Access_Control_Allow_Origin
:Dalam Rewrite Anda dapat menggunakan string apa pun setelahnya
RESPONSE_
dan itu akan membuat Header Respons menggunakan kata lainnya sebagai nama header (dalam hal ini Access-Control-Allow-Origin). Penulisan ulang menggunakan garis bawah "_", bukan tanda hubung "-" (penulisan ulang mengubahnya menjadi tanda hubung)Menjelaskan variabel server
HTTP_ORIGIN
:Demikian pula, di Rewrite Anda dapat mengambil Header Permintaan apa pun yang digunakan
HTTP_
sebagai awalan. Aturan yang sama dengan tanda hubung (gunakan garis bawah "_", bukan tanda hubung "-").sumber
(http(s)?:\/\/((.+\.)?(domain1|domain2)\.(com|org|net)))
. Dengan begitu Anda dapat menambahkan domain lain dengan cukup mudah dan mendukung beberapa domain Tingkat Atas (mis. Com, org, net, dll.).Di Web.API , atribut ini dapat ditambahkan menggunakan
Microsoft.AspNet.WebApi.Cors
seperti yang dijelaskan di http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-apiDi MVC Anda dapat membuat atribut filter untuk melakukan pekerjaan ini untuk Anda:
Kemudian aktifkan untuk tindakan / pengontrol tertentu:
Atau tambahkan untuk semua pengontrol di Global.asax.cs
sumber
Setelah membaca setiap jawaban dan mencobanya, tidak ada yang membantu saya. Apa yang saya temukan saat mencari di tempat lain adalah Anda dapat membuat atribut khusus yang kemudian dapat Anda tambahkan ke pengontrol. Ini menimpa yang EnableCors dan menambahkan domain yang masuk daftar putih di dalamnya.
Solusi ini berfungsi dengan baik karena memungkinkan Anda memiliki domain yang masuk daftar putih di webconfig (setelan aplikasi) alih-alih melakukan harcoding di atribut EnableCors pada pengontrol Anda.
Saya menemukan panduan ini secara online dan bekerja dengan sangat baik:
http://jnye.co/Posts/2032/dynamic-cors-origins-from-appsettings-using-web-api-2-2-cross-origin-support
Saya pikir saya akan menjatuhkannya di sini untuk siapa pun yang membutuhkan.
sumber
Saya berhasil menyelesaikan ini dalam kode penanganan Permintaan mengikuti saran dari 'monsur'.
sumber
Untuk IIS 7.5+ Anda dapat menggunakan IIS CORS Module: https://www.iis.net/downloads/microsoft/iis-cors-module
Web.config Anda harus seperti ini:
Anda dapat menemukan referensi konfigurasi di sini: https://docs.microsoft.com/en-us/iis/extensions/cors-module/cors-module-configuration-reference
sumber
Lihat ke dalam pustaka Thinktecture IdentityModel - ini memiliki dukungan CORS penuh:
http://brockallen.com/2012/06/28/cors-support-in-webapi-mvc-and-iis-with-thinktecture-identitymodel/
Dan secara dinamis dapat memancarkan ACA-Origin yang Anda inginkan.
sumber
Anda dapat menambahkan kode ini ke proyek webapi asp.net Anda
dalam file Global.asax
sumber
Anda dapat menggunakan middleware owin untuk menentukan kebijakan cors di mana Anda dapat menentukan beberapa asal cors
sumber
Anda hanya membutuhkan:
<add name="Access-Control-Allow-Origin" value="*" />
dari web.config Anda.setelah itu, tambahkan ini ke
Application_BeginRequest
metode Global.asax:Saya berharap bantuan ini. itu berhasil untuk saya.
sumber