2009-06-27 17 views
8

मेरे पास मेरे वेब एप्लिकेशन में एक एडीओ.NET इकाई-फ्रेमवर्क * .edmx फ़ाइल है।मैं ASP.NET में विशिष्ट एक्सटेंशन वाले फ़ाइलों तक पहुंच कैसे प्रतिबंधित करूं?

जब मैं ब्राउज़र में ब्राउज़ करता हूं (जब एप्लिकेशन चल रहा है) एक edmx फ़ाइल में, यह त्रुटि पृष्ठ नहीं दिखाता है जैसे * .cs या vb फ़ाइल पर ब्राउज़ करते समय, यह edmx खोलता है और मेरा मॉडल दिखाता है सभी उपयोगकर्ताओं के लिए योजना !!!

मैं इससे कैसे बच सकता हूं।

उत्तर

8

आप इस दो तरीके से कर सकते हैं; सबसे पहले web.config में या दूसरी बात आईआईएस

<system.web> 
    <httpHandlers> 
     <add verb="*" path="*.edmx" type="System.Web.HttpForbiddenHandler" /> 
    </httpHandlers> 
</system.web> 

में यहाँ एक माइक्रोसॉफ्ट सहायता पृष्ठ कैसे वेब config और आईआईएस में यह करने के लिए विवरण है कि करने के लिए एक लिंक भी है।

http://support.microsoft.com/kb/815152

+2

यह ध्यान देने योग्य है कि यह केवल रूट वेब.कॉन्फिग के लिए काम करता है - मेहदाद का उत्तर उपफोल्डर के लिए काम करता है –

9

आपको web.config में एएसपी.NET की System.Web.HttpForbiddenHandler कक्षा में एक्सटेंशन को मानचित्र बनाना चाहिए। यदि आप आईआईएस 6 का उपयोग कर रहे हैं, तो आप ऐसा करने से पहले, आपको एएसपी.नेट आईएसएपीआई हैंडलर को एक्सटेंशन मैप करना चाहिए था।

IIS7 एकीकृत मोड:

<system.webServer> 
    <handlers> 
     <add name="MyForbiddenExtensionHandler" 
      path="*.edmx" 
      verb="*" 
      type="System.Web.HttpForbiddenHandler" 
      preCondition="integratedMode" /> 
    </handlers> 
</system.webServer> 

IIS7 क्लासिक मोड। कुछ की तरह:

<system.web> 
    <httpHandlers> 
    <add path="*.edmx" 
     verb="*" 
     type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </httpHandlers> 
</system.web> 
<system.webServer> 
    <handlers> 
    <add name="MyExtensionISAPI" 
     path="*.edmx" 
     verb="*" 
     modules="IsapiModule" 
     scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> 
    </handlers> 
</system.webServer> 

IIS6 (IIS6 विन्यास में aspnet_isapi.dll को हैंडलर मानचित्रण के बाद):

<system.web> 
    <httpHandlers> 
    <add path="*.edmx" 
     verb="*" 
     type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </httpHandlers> 
</system.web> 
+0

प्रकार = "System.Web.HttpForbiddenHandler, System.Web" अंत में System.Web, एक त्रुटि फेंक दिया। बस टाइप करें = "System.Web.HttpForbiddenHandler"। – Shimmy

+0

इसे मूर्खतापूर्ण बनाने के लिए System.Web असेंबली के पूर्ण नाम के साथ उत्तर अपडेट किया गया। मैं असेंबली का नाम निर्दिष्ट करना चाहता हूं ताकि इसे किसी अन्य नाम से गलती से लोड किया जा सके, यदि इसमें एक ही नाम वाला एक प्रकार है। –

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

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