के लिए कस्टम एमवीसी प्राधिकरण एट्रिब्यूट मैं अपने वेब एपीआई नियंत्रकों पर एक कस्टम प्राधिकरण विशेषता को लागू करने की कोशिश कर रहा हूं, लेकिन एक अप्रत्याशित व्यवहार में आया।एएसपी.NET वेब एपीआई
<Authorize(Users:="myUser")>
Public Function GetTodoItems() As IQueryable(Of TodoItem)
ऊपर कोड बहुत अच्छी तरह से काम करता है: यह, बॉट किसी और की अनुमति दी है पहुँच "MyUser" आइटम को पुनः प्राप्त करने की अनुमति देगा। हालांकि, जब मैं अपने कस्टम प्राधिकरण के साथ एक ही दृष्टिकोण का प्रयास करता हूं, तो पूरी जांच छोड़ दी जाती है, और कोई भी उपयोगकर्ता संसाधन तक पहुंच सकता है। न तो AuthorizeCore
और न ही OnAuthorization
मेरी व्युत्पन्न कक्षा में ओवरराइड विधियों को बुलाया जाता है।
<MyAuth(Users:="myUser")>
Public Function GetTodoItems() As IQueryable(Of TodoItem)
व्युत्पन्न वर्ग System.Web.Mvc.AuthorizeAttribute
से विरासत, और परियोजना आईआईएस पर तैनात किया जाता है, साथ विंडोज प्रमाणीकरण & प्रतिरूपण सक्षम, और बेनामी प्रमाणीकरण विकलांग।
यदि मैं एक एमवीसी नियंत्रक के लिए एक ही कस्टम प्रमाणीकरण जोड़ता हूं, तो यह काम करता है। लेकिन एपीआई नियंत्रकों पर, कुछ भी नहीं। यदि Authorize
विशेषता या तो काम नहीं करती, तो यह अधिक समझ में आती। क्या मैं कुछ भूल रहा हूँ? क्या यह एक अपेक्षित व्यवहार है, या बीटा में एक बग है?
धन्यवाद, नामस्थान बदलना काम किया! यह अभी भी अजीब लगता है कि 'System.Web.Mvc.AuthorizeAttribute' का उपयोग वेब एपीआई के लिए किया गया था, जबकि मेरी कक्षा, जो उस सटीक कक्षा से ली गई थी, नहीं। –
यह एमवीसी और वेब एपीआई के बीच कई प्रकार के डुप्लिकेट की तरह लगता है। शायद वे विलय हो जाएंगे और रिलीज में हमारे पास एक प्रकार का नमूना होगा। तो शायद 'AuthorizeAttibute' ऑब्जेक्ट्स में से किसी एक को आंतरिक रूप से चेक किया जा रहा है, बस अनुमान लगाया जा सकता है। –