authorization - WCF declarative security using CodeAccessSecurity -


मैं CodeAccessSecurity पर आधारित कस्टम अनुमति-आधारित घोषणात्मक प्राधिकरण तंत्र का उपयोग करने की योजना बना रहा हूं। इसे लागू करने के लिए मैंने CodeAccessSecurityAttribute से प्राप्त निम्न उपवर्ग बनाया है:

मैं इसे इस तरह से उपयोग करता हूं:

  [सेवा का संप्रेषण] सार्वजनिक वर्ग सेवा {[ऑपरेशन कॉन्ट्रैक्ट] [आवश्यकताप्रदर्शन (सुरक्षा क्रिया। डिमांड, अनुमति = "गेट एब्रेट्री प्रोडक्ट ")] सार्वजनिक उपयोगकर्ता GetProduct (स्ट्रिंग का नाम) {वापसी _productRepository.Get (नाम); }}   

और मुझे उम्मीद थी कि अगर CreatePermission विधि रिटर्न _deny तक पहुंच GetProduct को प्रतिबंधित किया जाएगा। लेकिन ऐसा लगता है कि CodeAccessSecurity इस तरह से काम नहीं करता है। क्या मुझे एक्सेस ठीक से प्रतिबंधित करने के लिए एक अपवाद फेंकना होगा? या हो सकता है कि इसे प्राप्त करने के लिए और अधिक सुंदर तरीका क्या है?

सीएलआर तंत्र जो कि पर आधारित सत्यापन की जांच करता है एक CodeAccessSecurityAttribute उपवर्ग उदाहरण केवल लक्ष्य विधियों के निष्पादन को रोक देगा, यदि अपवाद तब फेंका जाता है जब CreatePermission () द्वारा दिया गया अनुमति मूल्यांकन किया जाता है। चूंकि आप SecurityAction निर्दिष्ट कर रहे हैं। अनुमति क्रिया के रूप में मांग, इसका मतलब है कि अनुमति की डिमांड () विधि को लक्ष्य विधि के निष्पादन से बचने के लिए फेंक देना होगा।

प्राधिकरण को संभाल करने के लिए बहुत सारे अन्य तरीके हैं परिदृश्य, जिनमें से कई आपको अधिक "सुरुचिपूर्ण" मिल सकते हैं हालांकि, वैकल्पिक तरीकों की तलाश शुरू करने से पहले, यह विचार करना सबसे अच्छा होगा कि प्राधिकरण से वंचित होने पर आपके सेवा कॉलर को क्या व्यवहार करना चाहिए। क्या आप विधि को सफल करना चाहते हैं, लेकिन रिक्त वापसी करें, या क्या आप कोई गलती वापस करना चाहेंगे? अगर बाद में, क्या आप चाहते हैं कि यह एक टाइप की गई गलती हो या नहीं?

Comments

Popular posts from this blog

mysql - BLOB/TEXT column 'value' used in key specification without a key length -

javascript - What is an alternative to using getElementByClass for hiding multiple elements? -

c# - GetType() == type perfomance question -