वेबएपी फ्रेमवर्क अनुरोध प्रसंस्करण के विभिन्न स्तरों पर अतिरिक्त तर्क को इंजेक्ट करने के लिए फिल्टर का उपयोग किया जाता है। फ़िल्टर क्रॉस-कटिंग चिंताओं (लॉगिंग, प्राधिकरण और कैशिंग) के लिए एक रास्ता प्रदान करते हैं। एक घोषणात्मक या प्रोग्रामेटिक तरीके से एक क्रिया विधि या नियंत्रक पर फ़िल्टर लागू किए जा सकते हैं। वेब API C# में फ़िल्टर के प्रकार नीचे दिए गए हैं।
प्रमाणीकरण फ़िल्टर -
एक प्रमाणीकरण फ़िल्टर हमें उपयोगकर्ता विवरण को प्रमाणित करने में मदद करता है। प्रमाणीकरण फ़िल्टर में, हम उपयोगकर्ता की प्रामाणिकता की जाँच के लिए तर्क लिखते हैं।
प्राधिकरण फ़िल्टर -
उपयोगकर्ता पहुंच की जांच के लिए प्राधिकरण फ़िल्टर जिम्मेदार हैं। वे ढांचे में IAuthorizationFilterinterface को लागू करते हैं।
एक्शन फ़िल्टर -
क्रिया विधियों के निष्पादन से पहले या बाद में अतिरिक्त तर्क जोड़ने के लिए क्रिया फ़िल्टर का उपयोग किया जाता है। कार्रवाई विधि निष्पादित होने से पहले और बाद में हमारे तर्क को जोड़ने के लिए OnActionExecuting और OnActionExecuted विधियों का उपयोग किया जाता है।
अपवाद फ़िल्टर -
एक अपवाद फ़िल्टर निष्पादित किया जाता है जब एक नियंत्रक विधि किसी भी अनचाहे अपवाद को फेंकता है जो HttpResponseException अपवाद नहीं है। TheHttpResponseException प्रकार एक विशेष मामला है, क्योंकि इसे विशेष रूप से एक HTTP प्रतिक्रिया वापस करने के लिए डिज़ाइन किया गया है।
ओवरराइड फ़िल्टर -
अलग-अलग क्रिया पद्धति के लिए अन्य फ़िल्टर के व्यवहार को अनुकूलित करने के लिए ओवरराइड फ़िल्टर का उपयोग किया जाता है। कभी-कभी एक आवश्यकता होती है जैसे कि हमारे पास जो भी फ़िल्टर हैं, हमें उन्हें ओवरराइड करने की आवश्यकता है। मान लें कि हमने नियंत्रक स्तर पर फ़िल्टर लागू किया है लेकिन नियंत्रक के भीतर एक क्रिया है जहां हम फ़िल्टर का उपयोग नहीं करना चाहते हैं, इसलिए हम फ़िल्टर के ओवरराइड संस्करण का उपयोग कर सकते हैं।
फ़िल्टर आमतौर पर तीन तरीकों से नीचे लागू किए जाते हैं।
-
नियंत्रक स्तर पर
-
ActionMethod स्तर पर
-
वैश्विक स्तर पर (WebApi.Config.cs)
आइए एक प्राधिकरण फ़िल्टर के कार्यान्वयन का एक उदाहरण देखें और यह कैसे काम करता है।
उदाहरण
using System.Web.Http; namespace DemoWebApplication.Controllers{ public class DemoController : ApiController{ [Authorize] public IHttpActionResult Get(){ return Ok(); } } }
चूंकि हमने क्रिया विधि पर अधिकृत विशेषता जोड़ दी है, इसलिए उचित प्राधिकरण जैसे बियरर टोकन, एपीआई कुंजी, ओएथ इत्यादि का उपयोग क्रिया विधि तक पहुंचने के लिए किया जाना चाहिए। अनधिकृत पहुंच के परिणामस्वरूप 401 अनधिकृत होगा प्रतिक्रिया जो नीचे दिखाई गई है।