ক্রস-অরিজিন রিসোর্স শেয়ারিং (CORS) হল একটি মেকানিজম যা অতিরিক্ত HTTP শিরোনাম ব্যবহার করে ব্রাউজারকে একটি ওয়েব অ্যাপ্লিকেশানকে একটি মূলে চলমান, একটি ভিন্ন উত্স থেকে নির্বাচিত সংস্থানগুলিতে অ্যাক্সেস দিতে বলে। একটি ওয়েব অ্যাপ্লিকেশন একটি ক্রস-অরিজিন এইচটিটিপি রিকোয়েস্ট এক্সিকিউট করে যখন এটি একটি রিসোর্স রিকোয়েস্ট করে যার নিজস্ব থেকে একটি ভিন্ন উৎস (ডোমেন, প্রোটোকল বা পোর্ট) আছে।
উদাহরণস্বরূপ, আসুন একটি অ্যাপ্লিকেশন বিবেচনা করুন যার সামনের প্রান্ত (UI) এবং পিছনের প্রান্ত (পরিষেবা) রয়েছে। বলুন সামনের প্রান্তটি https://demodomain-ui.com থেকে পরিবেশিত হয়৷ এবং ব্যাকএন্ডটি https://demodomain-service.com/api থেকে দেওয়া হয়। যদি কোনও শেষ ব্যবহারকারী অ্যাপ্লিকেশনটি অ্যাক্সেস করার চেষ্টা করে, নিরাপত্তার কারণে ব্রাউজারগুলি UI থেকে শুরু করা ক্রস-অরিজিন HTTP অনুরোধগুলিকে সীমাবদ্ধ করে।
তাই এটি কাটিয়ে ওঠার জন্য, CORS স্ট্যান্ডার্ড প্রয়োজন কারণ এটি সার্ভারগুলিকে শুধুমাত্র কে এর সম্পদগুলি অ্যাক্সেস করতে পারে তা নির্দিষ্ট করতে দেয় না, তবে কীভাবে সম্পদগুলি অ্যাক্সেস করা যায় তাও উল্লেখ করতে দেয়৷ ক্রস-অরিজিন অনুরোধগুলি স্ট্যান্ডার্ড HTTP অনুরোধ পদ্ধতি ব্যবহার করে করা হয়৷ বেশিরভাগ সার্ভারগুলি GET অনুরোধগুলিকে অনুমতি দেবে, যার অর্থ তারা তাদের সম্পদগুলি পড়ার জন্য বাহ্যিক অরিজিন (বলুন, একটি ওয়েব পৃষ্ঠা) থেকে সংস্থানগুলিকে অনুমতি দেবে৷ এইচটিটিপি প্যাচ, পুট বা মুছে ফেলার মতো পদ্ধতির অনুরোধ করে। 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 নিষ্ক্রিয় করতে পারি।