Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

C# ASP.NET WebAPI में CORS समस्या को कैसे हल करें?

क्रॉस-ओरिजिनल रिसोर्स शेयरिंग (सीओआरएस) एक ऐसा तंत्र है जो ब्राउज़र को एक मूल पर चलने वाले वेब एप्लिकेशन को एक अलग मूल से चयनित संसाधनों तक पहुंच देने के लिए अतिरिक्त 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 विधि में जोड़ें -

C# ASP.NET WebAPI में CORS समस्या को कैसे हल करें?

नियंत्रक और कार्य स्तर पर 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 को अक्षम कर सकते हैं।


  1. C# ASP.NET WebAPI में CORS समस्या को कैसे हल करें?

    क्रॉस-ओरिजिनल रिसोर्स शेयरिंग (सीओआरएस) एक ऐसा तंत्र है जो ब्राउज़र को एक मूल पर चलने वाले वेब एप्लिकेशन को एक अलग मूल से चयनित संसाधनों तक पहुंच देने के लिए अतिरिक्त HTTP शीर्षलेखों का उपयोग करता है। एक वेब एप्लिकेशन एक क्रॉस-ओरिजिनल HTTP अनुरोध को तब निष्पादित करता है जब वह ऐसे संसाधन का अनुरोध कर

  1. सी # एएसपी.नेट वेबएपीआई में किसी क्रिया विधि से कस्टम परिणाम प्रकार कैसे वापस करें?

    हम IHttpActionResult इंटरफ़ेस . को लागू करके परिणाम प्रकार के रूप में अपना स्वयं का कस्टम वर्ग बना सकते हैं . IHttpActionResult में एक ही विधि है, ExecuteAsync, जो अतुल्यकालिक रूप से एक HttpResponseMessage उदाहरण बनाता है। public interface IHttpActionResult {    Task<HttpResponseMessag

  1. वर्चुअलबॉक्स 'supR3HardenedWinReSpawn' में त्रुटि का समाधान कैसे करें?

    ‘supR3HardenedWinReSpawn में त्रुटि’ Oracle वर्चुअलबॉक्स इंस्टॉलेशन के साथ समस्या का सामना करना पड़ता है - आमतौर पर उनकी वर्चुअल मशीन को शुरू करने के कुछ सेकंड बाद। एक बार जब यह समस्या होने लगती है, तो बनाई जाने वाली हर नई वर्चुअल मशीन वही त्रुटि संदेश दिखाएगी (वर्चुअलबॉक्स को पूरी तरह से अनुपयोगी ब