2011-12-27 6 views
6

इस एएसपी.नेट एमवीसी 3 इंट्रानेट एप्लिकेशन में (एमवीसी 3 इंट्रानेट एप्लिकेशन टेम्पलेट का उपयोग करके बनाया गया), जहां उपयोगकर्ता एडी के खिलाफ स्वचालित रूप से प्रमाणीकृत होते हैं, मैं स्थानीय Administrators समूह में उपयोगकर्ताओं को नियंत्रक तक पहुंच प्रतिबंधित करने की कोशिश कर रहा हूं। इस लक्ष्य को हासिल करने के लिए, मैं बहुत तरह AuthorizeAttribute लागू करने के लिए कोशिश की है:मैं ASP.NET MVC 3 इंट्रानेट एप्लिकेशन में स्थानीय व्यवस्थापक समूह के साथ AuthorizeAttribute कैसे काम करूं?

[Authorize(Roles = "Administrators")] 
public class ElmahController : Controller 

हालांकि, भले ही मेरी ई उपयोगकर्ता (आवेदन की उम्मीद उपयोगकर्ता प्रमाणीकृत किया गया है रिपोर्ट) स्थानीय Administrators समूह में है, मैं नहीं कर सकता AuthorizeAttribute लागू होने पर नियंत्रक तक पहुंच प्राप्त करें। केवल एक खाली पृष्ठ आता है। मैं क्या गलत कर रहा हूं?

दूसरी ओर, मैं सत्यापित किया है कि मेरी विशेष उपयोगकर्ता को निर्दिष्ट काम करता है:

[Authorize(Users = @"ad\arve")] 
public class ElmahController : Controller 

इस मामले में, मैं सफलतापूर्वक प्रतिबंधित पेज को पुनः प्राप्त कर सकते हैं।

संपादित करें: मैंने पाया कि BUILTIN साथ समूह योग्यता काम किया:

[Authorize(Roles = @"BUILTIN\Administrators")] 

इस AuthorizeAttribute हालांकि के माध्यम से स्थानीय समूहों की चर्चा करते हुए की निश्चित तरीका है ??

उत्तर

6

मेरी ट्यूटोरियल देखें How to Create an Intranet Site Using ASP.NET MVC आप अंतर्निहित AspNetWindowsTokenRoleProvider वर्ग है, जो भूमिकाओं

[Authorize(Roles = @"BUILTIN\Administrators")] 

के रूप में विंडोज समूहों का उपयोग करता है का उपयोग करने के केवल काम करेगा अगर आप आईआईएस सर्वर पर एक व्यवस्थापक हैं की जरूरत है। यदि आप अपनी कंपनी के लिए उत्पादन सर्वर पर अपना आवेदन तैनात करते हैं, तो आपको उत्पादन सर्वर पर स्थानीय व्यवस्थापक बनाना होगा।

+0

का उपयोग करने की आवश्यकता है धन्यवाद, यह जो मैंने पाया है उससे मेल खाता है ('बिल्टिन "के साथ' प्रशासक 'को अर्हता प्राप्त करने के लिए)। – aknuds1

0

आप प्रत्येक एक्शन या नियंत्रक के ऊपर रखने के लिए एक कस्टम एडी प्रमाणीकरण विशेषता कर सकते हैं। मैंने पहले यह किया है और नीचे दिए गए लिंक के समान कुछ किया है। यह काम करता है यदि आप फॉर्म प्रमाणीकरण का उपयोग कर रहे हैं, न कि विंडोज़।

Active Directory Authorization based on Groups

+0

हालांकि प्रशासक समूह स्थानीय है, क्या समस्या एडी समूहों के समान ही है? – aknuds1

+0

आपके द्वारा संदर्भित प्रश्न के नए उत्तर को देखते हुए, यह कहता है कि आप मूल रूप से web.config में 'System.Web.Security.WindowsTokenRoleProvider' से दूर हो सकते हैं। यह पहले से ही मेरे web.config में जोड़ा गया है, मैं इंट्रानेट एप्लिकेशन टेम्पलेट द्वारा मान रहा हूं, इसलिए मुझे लगता है कि एडी के खिलाफ प्रमाणीकरण पहले से ही काम करेगा। मामले में, मैं अपने विशिष्ट उपयोगकर्ता के खिलाफ अधिकृत करने में सक्षम था: '[अधिकृत करें (उपयोगकर्ता = @" विज्ञापन \ arve ")]'। – aknuds1

+1

यह गलत है। एमएसडीएन पर मेरा आलेख देखें एएसपी.नेट एमवीसी का उपयोग कर इंट्रानेट साइट कैसे बनाएं http://msdn.microsoft.com/en-us/library/gg703322(VS.98).aspx आपको AspNetWindowsTokenRoleProvider क्लास – RickAndMSFT

संबंधित मुद्दे