क्रॉस-ओरिजिनल रिसोर्स शेयरिंग (सीओआरएस) एक ऐसा तंत्र है जो ब्राउज़र को एक मूल पर चलने वाले वेब एप्लिकेशन को एक अलग मूल से चयनित संसाधनों तक पहुंच देने के लिए अतिरिक्त HTTP शीर्षलेखों का उपयोग करता है। एक वेब एप्लिकेशन एक क्रॉस-ओरिजिनल HTTP अनुरोध को तब निष्पादित करता है जब वह ऐसे संसाधन का अनुरोध करता है जिसका स्वयं से अलग मूल (डोमेन, प्रोटोकॉल, या पोर्ट) होता है।
उदाहरण के लिए, आइए हम एक ऐसे एप्लिकेशन पर विचार करें, जिसका फ्रंट एंड (UI) और बैक एंड (सर्विस) है। मान लें कि फ़्रंट-एंड https://demodomain-ui.com . से परोसा गया है और बैकएंड https://demodomain-service.com/api से परोसा जाता है। यदि कोई अंतिम उपयोगकर्ता एप्लिकेशन को एक्सेस करने का प्रयास करता है, तो सुरक्षा कारणों से ब्राउज़र UI से शुरू किए गए क्रॉस-ओरिजिनल HTTP अनुरोधों को प्रतिबंधित कर देता है।
इसलिए इसे दूर करने के लिए, CORS मानक की आवश्यकता है क्योंकि यह सर्वर को न केवल यह निर्दिष्ट करने की अनुमति देता है कि कौन इसकी संपत्ति का उपयोग कर सकता है, बल्कि यह भी कि संपत्ति को कैसे एक्सेस किया जा सकता है। मानक HTTP अनुरोध विधियों का उपयोग करके क्रॉस-ओरिजिनल अनुरोध किए जाते हैं। अधिकांश सर्वर जीईटी अनुरोधों की अनुमति देंगे, जिसका अर्थ है कि वे अपनी संपत्ति को पढ़ने के लिए बाहरी मूल (जैसे, एक वेब पेज) से संसाधनों की अनुमति देंगे। HTTP अनुरोध विधियों जैसे PATCH, PUT, या DELETE। CORSstandard द्वारा जोड़े गए HTTP शीर्षलेख निम्नलिखित हैं -
-
पहुंच-नियंत्रण-अनुमति दें-उत्पत्ति
-
एक्सेस-कंट्रोल-अनुमति-क्रेडेंशियल्स
-
एक्सेस-कंट्रोल-अनुमति-शीर्षलेख
-
एक्सेस-कंट्रोल-अनुमति-तरीके
-
एक्सेस-कंट्रोल-एक्सपोज़-हेडर
-
एक्सेस-कंट्रोल-अधिकतम-आयु
-
पहुंच-नियंत्रण-अनुरोध-शीर्षलेख
-
पहुंच-नियंत्रण-अनुरोध-विधि
-
उत्पत्ति
वैश्विक स्तर पर CORS को सक्षम करना -
सबसे पहले Microsoft.AspNet.WebApi.Cors . को स्थापित करना है Nuget पैकेज मैनेजर से।
फिर फ़ाइल खोलें App_Start/WebApiConfig.cs. निम्नलिखित कोड को WebApiConfig.Register विधि में जोड़ें -
नियंत्रक और कार्य स्तर पर CORS को सक्षम करना -
हम नीचे की तरह नियंत्रक या क्रिया विधि स्तर पर भी CORS को सक्षम कर सकते हैं।
उदाहरण
using System.Web.Http; using System.Web.Http.Cors; namespace DemoWebApplication.Controllers{ [EnableCors("*", "*", "*")] //Controller level public class DemoController : ApiController{ [EnableCors("*", "*", "*")] //Action level public IHttpActionResult Get(int id){ return Ok(); } } }
इसी तरह, हम [DisableCors] विशेषता का उपयोग करके cors को अक्षम कर सकते हैं।