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

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

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

उदाहरण के लिए, आइए एक ऐसे एप्लिकेशन पर विचार करें जिसमें फ्रंट एंड (UI) और बैक एंड (सर्विस) हो। मान लीजिए फ्रंट-एंड https://demodomain-ui.com से सर्व किया जाता है और बैकएंड https://demodomain-service.com/api से सर्व किया जाता है। यदि कोई एंड यूज़र एप्लिकेशन को एक्सेस करने का प्रयास करता है, तो सुरक्षा कारणों से ब्राउज़र UI से शुरू की गई क्रॉस-ओरिजिन HTTP रिक्वेस्ट को प्रतिबंधित कर देते हैं।

इसलिए इससे पार पाने के लिए, CORS मानक की आवश्यकता होती है क्योंकि यह सर्वर्स को यह निर्दिष्ट करने की अनुमति देता है कि न केवल कौन इसकी संपत्ति तक पहुंच सकता है, बल्कि यह भी कि संपत्ति तक कैसे पहुंचा जा सकता है। क्रॉस-ओरिजिन रिक्वेस्ट मानक HTTP रिक्वेस्ट मेथड्स का उपयोग करके की जाती हैं। अधिकांश सर्वर GET रिक्वेस्ट की अनुमति देंगे, जिसका अर्थ है कि वे बाहरी ओरिजिन (जैसे, एक वेब पेज) से अपने एसेट्स को पढ़ने के लिए रिसोर्सेज की अनुमति देंगे। HTTP रिक्वेस्ट मेथड्स जैसे PATCH, PUT, या DELETE। CORS मानक द्वारा जोड़े गए निम्नलिखित HTTP हेडर्स हैं:

  • Access-Control-Allow-Origin
  • Access-Control-Allow-Credentials
  • Access-Control-Allow-Headers
  • Access-Control-Allow-Methods
  • Access-Control-Expose-Headers
  • Access-Control-Max-Age
  • Access-Control-Request-Headers
  • Access-Control-Request-Method
  • Origin

ग्लोबल लेवल पर CORS सक्षम करना

पहला कदम NuGet पैकेज मैनेजर से Microsoft.AspNet.WebApi.Cors इंस्टॉल करना है।

फिर 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("*", "*", "*")] // कंट्रोलर लेवल
    public class DemoController : ApiController
    {
        [EnableCors("*", "*", "*")] // एक्शन लेवल
        public IHttpActionResult Get(int id)
        {
            return Ok();
        }
    }
}

इसी तरह, हम [DisableCors] एट्रिब्यूट का उपयोग करके CORS को अक्षम कर सकते हैं।

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

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

  1. C# ASP.NET WebAPI में एक्शन मेथड से कस्टम रिजल्ट टाइप कैसे लौटाएं? C# ASP.NET WebAPI में एक्शन मेथड से कस्टम रिजल्ट टाइप कैसे लौटाएं?

    हम IHttpActionResult इंटरफ़ेस को इम्प्लीमेंट करके अपनी खुद की कस्टम क्लास को रिजल्ट टाइप के रूप में बना सकते हैं। IHttpActionResult में एक सिंगल मेथड, ExecuteAsync होता है, जो एसिंक्रोनसली एक HttpResponseMessage इंस्टेंस बनाता है। public interface IHttpActionResult { Task ExecuteAsync(Cancellat

  1. वर्चुअलबॉक्स  Error in supR3HardenedWinReSpawn  को कैसे हल करें? वर्चुअलबॉक्स 'Error in supR3HardenedWinReSpawn' को कैसे हल करें?

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