प्राधिकरण यह तय करने की प्रक्रिया है कि प्रमाणित उपयोगकर्ता को किसी विशिष्ट संसाधन (वेब एपीआई संसाधन) पर कार्रवाई करने की अनुमति है या नहीं। उदाहरण के लिए, डेटा प्राप्त करने और डेटा पोस्ट करने की अनुमति प्राप्त करना प्राधिकरण का एक हिस्सा है। प्राधिकरण प्रक्रिया नियंत्रक क्रिया विधि को निष्पादित करने से पहले होती है जो आपको यह तय करने की सुविधा प्रदान करती है कि हम उस संसाधन तक पहुंच प्रदान करना चाहते हैं या नहीं।
ASP.NET में वेब एपीआई प्राधिकरण प्राधिकरण फ़िल्टर का उपयोग करके कार्यान्वित किया जाता है जिसे नियंत्रक क्रिया विधि निष्पादित करने से पहले निष्पादित किया जाएगा। वेब एपीआई एक अंतर्निहित प्राधिकरण फ़िल्टर प्रदान करता है, AuthorizeAttribute। यह फ़िल्टर जाँचता है कि उपयोगकर्ता प्रमाणित है या नहीं। यदि नहीं, तो यह HTTP स्थिति कोड 401 (अनधिकृत) लौटाता है, बिना कार्रवाई किए।
हम फ़िल्टर को वैश्विक स्तर पर, नियंत्रक स्तर पर, या व्यक्तिगत क्रियाओं के स्तर पर लागू कर सकते हैं।
विश्व स्तर पर
प्रत्येक वेब एपीआई नियंत्रक के लिए एक्सेस प्रतिबंधित करने के लिए, वैश्विक फ़िल्टर सूची में AuthorizeAttribute फ़िल्टर जोड़ें।
public static void Register(HttpConfiguration config){ config.Filters.Add(new AuthorizeAttribute()); }
नियंत्रक
किसी विशिष्ट नियंत्रक के लिए पहुंच प्रतिबंधित करने के लिए, फ़िल्टर को नियंत्रक में एक विशेषता के रूप में जोड़ें।
// नियंत्रक पर सभी कार्रवाइयों के लिए प्राधिकरण की आवश्यकता है।[अधिकृत करें]
public class StudentsController: ApiController{ public HttpResponseMessage Get(int id) { ... } public HttpResponseMessage Post() { ... } }
कार्रवाई
विशिष्ट कार्रवाइयों के लिए एक्सेस प्रतिबंधित करने के लिए, क्रिया विधि में विशेषता जोड़ें।
public class StudentsController : ApiController{ public HttpResponseMessage Get() { ... } // Require authorization for a specific action. [Authorize] public HttpResponseMessage Post() { ... } }
उदाहरण
using System.Web.Http; namespace DemoWebApplication.Controllers{ public class DemoController : ApiController{ [Authorize] public IHttpActionResult Get(){ return Ok(); } } }
चूंकि हमने क्रिया विधि पर अधिकृत विशेषता जोड़ दी है, इसलिए उचित प्राधिकरण जैसे बियरर टोकन, एपीआई कुंजी, ओएथ इत्यादि का उपयोग क्रिया विधि तक पहुंचने के लिए किया जाना चाहिए। अनधिकृत पहुंच के परिणामस्वरूप 401 अनधिकृत होगा प्रतिक्रिया जो नीचे दिखाई गई है।