2015-05-11 6 views
5

पर एडी भूमिकाओं का नाम सेट करें। मैं .NET Framework 4.5.1 और C# के साथ एक एएसपी.नेट एमवीसी 5 ऐप विकसित कर रहा हूं।वेब.config

मैं कुछ उपयोगकर्ताओं को अपने नियंत्रकों तक पहुंचने की अनुमति देने के लिए Windows authentication का उपयोग कर रहा हूं। यह मेरा web.config फ़ाइल है:

<system.web> 
    <compilation debug="true" targetFramework="4.5.1" /> 
    <httpRuntime targetFramework="4.5.1" /> 
    <authentication mode="Windows" /> 
    <authorization> 
    <deny users="?" /> 
    </authorization> 
    <roleManager enabled="true" defaultProvider="WindowsProvider"> 
    <providers> 
     <clear /> 
     <add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider" /> 
    </providers> 
</roleManager> 
</system.web> 

और ये मेरे Authorize विशेषता है:

[Authorize(Roles = @"MyDomain\MyUploadRole")] 
public class UploadController : Controller 
{ 
    // ... 
} 

मैं web.config को स्ट्रिंग @"MyDomain\MyUploadRole" जोड़ना चाहते हैं लेकिन मैं यह कैसे करना है पता नहीं है।

मैंने इस SO answer का परीक्षण किया है, लेकिन यह मेरे लिए काम नहीं करता है। मैं web.config फाइल करने के लिए इस हिस्से को शामिल किया है:

<roles> 
    <add key="Role1" value="MyDomain\MyUploadRole" /> 
    <add key="Role2" value="MyDomain\Another role" /> 
</roles> 

और फिर, मैं नियंत्रक पर यह परिवर्तन:

[Authorize(Roles = @"Role1")] 
public class UploadController : Controller 
{ 
    // ... 
} 

और इंटरनेट एक्सप्लोरर मेरी क्रेडेंशियल की मांग है, लेकिन मैं अनधिकृत प्रतिक्रिया मिल।

मैं web.config पर भूमिका का नाम कैसे सेट कर सकता हूं?

+0

क्या साथ ऐसा कुछ: <उपयोगकर्ताओं को अनुमति दें = "डोमेन \ उपयोगकर्ता" भूमिकाएं = "डोमेन \ समूह" /> – DasDas

+0

@ दासदास कुछ नियंत्रकों को एक भूमिका की आवश्यकता होती है और उनमें से कुछ नहीं करते हैं। – VansFannel

+0

क्यों अन्य उत्तर आपके लिए काम नहीं किया? – mattytommo

उत्तर

0

हो सकता है यह आपके लिए काम करेंगे:

<configuration>  
<system.web> 
    <authentication mode="Windows"/> 
    <authorization> 
    <allow roles="MyDomain\MyUploadRole"/> 
    <deny users="?"/> 
    </authorization> 
    <identity impersonate="true"/> 
</system.web> 

और अपने कोड में आप को देखने के लिए उपयोगकर्ता इस तरह की एक भूमिका में है कि क्या जांच कर सकते हैं:

HttpContext.Current.User.IsInRole("MyDomain\MyUploadRole") 
संबंधित मुद्दे