2010-10-15 6 views
10

मुझे उपनिर्देशिका में किसी विशिष्ट पृष्ठ पर विशिष्ट भूमिका पहुंच की अनुमति देने में समस्याएं आ रही हैं।एएसपी.नेट फॉर्म औथ उपनिर्देशिका में विशिष्ट फ़ाइल तक पहुंच की अनुमति देना जब सभी को अस्वीकार कर दिया जाना चाहिए

मेरा एएसपी.नेट आवेदन में एक निर्देशिका है, ~/फॉर्म/प्रशासन जिसमें सीमित पहुंच है। एक विशिष्ट फ़ाइल है, ~/फॉर्म/प्रशासन/Default.aspx कि मैं 1 अतिरिक्त उपयोगकर्ता भूमिका पहुंच के साथ-साथ व्यवस्थापक भूमिका भी देना चाहता हूं।

~/प्रपत्र/प्रशासन में, मैं एक web.config फ़ाइल है कि इस तरह दिखता है:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.web> 
     <authorization> 
      <allow roles="Administrator, User" /> 
      <deny users="*"/> 
     </authorization> 
    </system.web> 

    <location path="Forms/Administration/Default.aspx"> 
     <system.web> 
      <authorization> 
       <allow roles="Administrator, User, AdditionalUser" /> 
      </authorization> 
     </system.web> 
    </location> 

</configuration> 

व्यवस्थापक उपयोगकर्ता बस ठीक काम करता है, लेकिन AdditionalUser हमेशा विफल रहता है। के रूप में

<location path="Forms/Administration/Default.aspx"> 

और

<location path="~/Forms/Administration/Default.aspx"> 

के रूप में स्थान लिस्टिंग मिसाल लेने पहले सामान्य नियम से = "*" से इनकार कर रहा है - मैं चीजों के एक नंबर की कोशिश की है? मैं

<deny users="*"/> 

बदलते

<deny users="?"/> 

करने की कोशिश की लेकिन वह सब कुछ को AdditionalUser उपयोग करने देने समाप्त होता है। सुझाव?

संपादित करें: मैंने स्थान विशिष्ट होने पर जेनेरिक अस्वीकार नियम से पहले स्थान विशिष्ट अनुमति देने का प्रयास किया। एक ही समस्या है।

अपडेट: मैं यहां कुछ स्पष्ट रूप से याद कर रहा हूं: मैंने deny * config को हटा दिया है, और केवल स्थान विशिष्ट अनुभाग छोड़ दिया है। फिर, कुछ भूमिकाओं को अनुमति देने के बजाय, मैंने इसे सभी को अस्वीकार करने के लिए सेट किया है (*)। हालांकि, जब मैं लॉगिन करता हूं तो यह मुझे अस्वीकार नहीं कर रहा है। मैंने नियम को फ़ाइल विशिष्ट नहीं होने के लिए भी कम कर दिया, लेकिन पूरी निर्देशिका पर लागू होता है, और यह मुझे कुछ भी अस्वीकार नहीं कर रहा है। हालांकि, मूल गैर-स्थान विशिष्ट नियम काम करते हैं, इसलिए मुझे पता है कि यह कॉन्फ़िगरेशन फ़ाइल पढ़ी जा रही है।

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <location path="Forms/Administration"> 
     <system.web> 
      <authorization> 
       <deny users="*" /> 
      </authorization> 
     </system.web> 
    </location> 
</configuration> 

उत्तर

18

दो बातें:

  1. स्थान, web.config फ़ाइल के सापेक्ष है इसलिए यदि आपके web.config पहले से ही/प्रपत्र/प्रशासन में इसे होने की सही किया जाना चाहिए है:

    <location path="Default.aspx"> 
        <system.web> 
         <authorization> 
          <allow roles="Administrator, User, AdditionalUser" /> 
         </authorization> 
        </system.web> 
    </location> 
    
  2. अनुमति और अस्वीकार करने के आदेश के बारे में स्पष्टीकरण के लिए प्राधिकरण पहले मिलान के आधार पर आवेदन करने जा रहा है, इसलिए आदेश बहुत महत्वपूर्ण है। उदाहरण के लिए:

    <deny users="*" /> 
    <allow users="Administrator" /> 
    

प्रशासक मना कर दिया जाएगा, क्योंकि यह इनकार की पहली प्रविष्टि का मिलान नहीं हुआ ... भले ही आप अगली पंक्ति पर व्यवस्थापक उपयोगकर्ता अनुमति देने के लिए निर्दिष्ट।तो करने के लिए केवल प्रशासक की अनुमति देते हैं, सही सिंटैक्स होगा:

<configuration> 
    <system.web> 
    <authorization> 
     <allow roles="Administrator, User" /> 
     <deny users="*"/> 
    </authorization> 
    </system.web> 

    <location path="Default.aspx"> 
    <system.web> 
     <authorization> 
      <allow roles="AdditionalUser" /> 
     </authorization> 
    </system.web> 
    </location> 

</configuration> 
:

<allow users="Administrator" /> 
<deny users="*" /> 

सारांश में

मैं क्या आप सही तरीके से चाहते हैं पढ़ रहा हूँ, तो संभवतः यह अंतिम उत्पाद आप चाहते है

+0

गह, यह सही समझ में आता है। जितनी जल्दी हो सके इस समाधान को आजमाएं। – Matt

+0

क्रिस, आप http://stackoverflow.com/questions/15882511/how-do-i-configure-asp-net-forms-authentication-to-deny-only-a-specific-url साथ मेरी मदद कर सकते हैं। चूंकि मुझे एक्सेस करने के लिए केवल 1 उपयोग की आवश्यकता है, मैं बस अपनी लॉगिन जानकारी –

+0

लॉल @ नेटपेट दर्ज कर रहा हूं, मैंने आपके प्रश्न पर टिप्पणी की। उम्मीद है कि –

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

  • कोई संबंधित समस्या नहीं^_^