ASP.NET MVC3 Role and Permission Management -> With Runtime Permission Assignment -


ASP.NET MVC उपयोगकर्ताओं को डिज़ाइन समय ऐसा ही है।

  [प्राधिकृत करें (भूमिकाएं = "प्रशासक, सामग्रीएडिटेटर")) सार्वजनिक कार्यवाहक फ़ू () {वापसी दृश्य (); }   

वास्तव में अनुमति की जांच करने के लिए, एक (रेजर) दृश्य में निम्नलिखित कथन का उपयोग हो सकता है:

  @if (User.IsInRole ("ContentEditor ")) {& Lt; div & gt; यह केवल सामग्री एडिटर भूमिका में उपयोगकर्ताओं के लिए दृश्यमान होगा। & Lt; / div & gt; }   

इस दृष्टिकोण के साथ समस्या यह है कि सभी अनुमतियों को गुण समय के रूप में डिजाइन समय पर सेट किया जाना चाहिए और उन्हें असाइन किया जाना चाहिए। (विशेषताएँ DLL के साथ संकलित की जाती हैं, इसलिए मैं वर्तमान में रनटाइम पर [अधिकृत (भूमिकाएं = "व्यवस्थापक, सामग्रीएडिटेटर")] विशेषताओं (अतिरिक्त अनुमतियों की अनुमति देने के लिए) के लिए कोई तंत्र से अवगत नहीं हूं। / P>

हमारे इस्तेमाल के मामले में, क्लाइंट को यह बदलने की आवश्यकता है कि उपयोगकर्ताओं को क्या अनुमति है तैनाती के बाद

उदाहरण के लिए, क्लाइंट किसी विशेष प्रकार की कुछ सामग्री को संपादित करने के लिए ContentEditor भूमिका में एक उपयोगकर्ता। शायद एक उपयोगकर्ता को देखने के तालिका मूल्यों को संपादित करने की अनुमति नहीं थी, लेकिन अब ग्राहक उपयोगकर्ता को अनुमति दिए बिना इसे अनुमति देना चाहता है सभी की भूमिका की अनुमति देता है। इसके बजाय, ग्राहक उपयोगकर्ता के वर्तमान भूमिका के लिए उपलब्ध अनुमतियों को संशोधित करना चाहता है।

एट्रिब्यूट्स के बाहर परिभाषित करने के लिए MVC नियंत्रकों / दृश्य / क्रियाओं पर अनुमतियों को अनुमति देने के लिए रणनीतियों के लिए कौन से विकल्प उपलब्ध हैं (एक डेटाबेस में) और रनटाइम पर मूल्यांकन और लागू किया जाता है? < / P>

I संभव है कि हम एएसपी.नेट सदस्यता और भूमिका प्रदाता की कार्यक्षमता के लिए जितनी बारीकी से चिपकाना चाहते हैं, इसलिए हम इसे उपलब्ध कराए गए अन्य लाभों का लाभ उठाना जारी रख सकें।

आप पहले से धन्यवाद किसी भी विचार या अंतर्दृष्टि।

MVC नियंत्रकों / विशेषताओं के बाहर परिभाषित होने के लिए दृश्य / क्रियाएं (डेटाबेस में के रूप में) और रनटाइम पर मूल्यांकन और लागू किया जाता है?

एक कस्टम ऑथराइज़ विशेषता यह हासिल करने की एक संभावना है:

  सार्वजनिक वर्ग MyAuthorizeAttribute: AuthorizeAttribute {protected override bool AuthorizeCore (HttpContextBase httpContext) {रोल्स = ... आगे बढ़ो और उन भूमिकाओं को गतिशील रूप से प्राप्त करें जहां वे रिटर्न बेस को संग्रहीत किया जाता है। प्राधिकृतकोअर (httpContext); }}   

और उसके बाद:

  [MyAuthorize] सार्वजनिक कार्यवाही Foo () {return View (); }    

Comments

Popular posts from this blog

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

c# - Using Vici cool Storage with monodroid -

python - referencing a variable in another function? -