2010-02-25 14 views
16

को अनुमति देने के लिए संभव है। मुझे एक एएसपी.Net ऐप में एक पृष्ठ मिला है (इसकी एमवीसी वास्तव में लेकिन महत्वपूर्ण नहीं है) और मैं केवल इस पृष्ठ से कनेक्शन की अनुमति देना चाहता हूं स्थानीय मशीन से। (या नियंत्रक) और its even possible just with IIS configurationक्या वेब कनेक्शन कॉन्फ़िगरेशन को केवल स्थानीय कनेक्शन

<location path="resources"><system.web><authorization><allow ips="local"/></authorization></system.web></location> 

मैं जानता हूँ कि इसके पीछे पेज कोड में एक सरल जांच के साथ संभव है, लेकिन मैं के रूप में एक Web.config config प्यार होता: मैं Web.config में इस तरह कुछ करने के लिए प्यार होता है यह मेरी राय में सबसे सुंदर समाधान होगा। किसी को पता है कि यह संभव है या नहीं?

धन्यवाद

गुइडो

+0

क्या आपके उपयोगकर्ता विंडोज डोमेन पर हैं? यदि ऐसा है तो आप केवल डोमेन उपयोगकर्ताओं तक पहुंच प्रतिबंधित कर सकते हैं। यह @ लांस के जवाब की तरह बहुत कुछ दिखाई देगा। – jrummell

+0

नोट: यह संभव नहीं है, सभी समाधानों को लेखन कोड की आवश्यकता है (बॉक्स समाधान उपलब्ध नहीं है) – gatapia

उत्तर

4

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

<location path="resources"> 
    <system.web> 
    <authorization> 
     <allow users="LOCALMACHINENAME\UsernameOfTrustedUser"/> 
     <deny users="*"/> 
    </authorization> 
    </system.web> 
</location> 
+0

हाय लांस, यह आईआईएस उपयोगकर्ता के रूप में मदद नहीं करेगा जो इस पृष्ठ को समय-समय पर चलाएगा और मैं वर्तमान में 'प्रतिरूपण' नहीं कर रहा हूं सभी उपयोगकर्ता आईआईएस उपयोगकर्ता होंगे। – gatapia

+0

क्या आपने इस सुझाव का प्रयास किया था? यह काम करना चाहिए। "प्रतिरूपण" का उपयोग प्रमाणीकरण उदाहरण के लिए प्रासंगिक नहीं है। –

0

आप अपनी खुद की विन्यास खंड है कि आपके web.config का हिस्सा बनने और फिर सेटिंग का उपयोग Global.asax session_start में व्यवहार को नियंत्रित करने के लिए बना सकते हैं।

2
  1. मशीन के लिए एक गैर-DNS उपनाम, यानी "PrivateHostName" की खोज करें।
  2. 127.0.0.1 को इंगित करने के लिए स्थानीय मान फ़ाइल में यह मान सेट करें।
  3. वेब साइट के लिए एक (आईआईएस) होस्ट हेडर सेट करें जैसे कि यह केवल "PrivateHostName" को संबोधित करने के अनुरोधों का जवाब देता है।
  4. सभी स्थानीय कॉल निजी होस्ट नाम का उपयोग करते हैं।

रिमोट क्लाइंट होस्ट नाम को हल करने में सक्षम नहीं होंगे।

आप वर्चुअल नेटवर्क एडाप्टर से जुड़े एक समर्पित आईपी पते का उपयोग करके इसे और अधिक सुरक्षित कर सकते हैं जो वास्तव में बाहरी अनुरोधों का जवाब नहीं देगा।

+5

सुरक्षित समाधान नहीं है। हैकर इस उपनाम को अपनी स्थानीय होस्ट फ़ाइल में जोड़ सकता है और वेब साइट तक पहुंच प्राप्त कर सकता है। – meir

25

आप आईआईएस Web.config के भीतर से आईपी पते से एक संसाधन के लिए उपयोग को प्रतिबंधित करने के लिए पूछ सकते हैं:

<location path="resources"> 
    <system.webServer> 
    <security> 
     <ipSecurity allowUnlisted="false"> 
     <clear/> 
     <add ipAddress="127.0.0.1"/> 
     </ipSecurity> 
    </security> 
    </system.webServer> 
</location> 

More info

संपादित करें: के रूप में माइक यह नीचे टिप्पणी में बताया, इस की आवश्यकता है आईपी ​​और डोमेन प्रतिबंध मॉड्यूल स्थापित करने के लिए। धन्यवाद माइक!

+7

उत्तर के लिए धन्यवाद। शुरू करने के लिए, यह मेरे लिए काम नहीं करता - सेटिंग आईआईएस द्वारा अनदेखा लग रहा था। अंत में मैंने विंडोज 7 पर काम किया, आईपी और डोमेन प्रतिबंध मॉड्यूल डिफ़ॉल्ट रूप से स्थापित नहीं है। इसे काम करने के लिए मुझे 'कंट्रोल पैनल> प्रोग्राम्स और फीचर्स> विंडोज़ फीचर्स को चालू या बंद करें> इंटरनेट इनफॉर्मेशन सर्विसेज> वर्ल्ड वाइड वेब सर्विसेज> सिक्योरिटी' और 'आईपी सिक्योरिटी' पर टिकटें। –

+0

यह बहुत अच्छा काम करता प्रतीत होता है, लेकिन क्या आप जानते हैं कि पृष्ठ के आउटपुट को कैसे बदला जाए? मुझे 200 स्टेटस कोड मिल रहा है, और पेज पढ़ता है: "रिमोट से एक्सेस की अनुमति नहीं है (2)।" – Redtopia

+0

@ रेडटॉपिया: आप 403 त्रुटि पृष्ठ जोड़ सकते हैं। Web.config में आप की आवश्यकता होगी: <निकालें statusCode = "403" subStatusCode = "- 1" /> <त्रुटि statusCode = "403" prefixLanguageFilePath = "" पथ = "/ पथ /to/errorpage.aspx "प्रतिक्रिया मोड =" ExecuteURL "/> Daniel

1

मुझे यह भी सहायक साबित हुआ, अगर आप कई आईपी पते निर्दिष्ट करना चाहते हैं। आप को निम्नलिखित कोड ब्लॉक जोड़ सकते हैं web.config

<system.webServer> 
    <security> 
     <ipSecurity allowUnlisted="false"> 
      <clear/> 
      <add ipAddress="95.110.115.0" subnetMask="255.255.255.0"/> 
      <!--blocks range 95.110.115.0 to 95.110.115.255-->  
      <add ipAddress="95.110.0.0" subnetMask="255.255.0.0"/>  
      <!--blocks range 95.110.0.0 to 95.110.255.255-->  
      <add ipAddress="95.0.0.0" subnetMask="255.0.0.0"/>   
      <!--blocks range 95.0.0.0 to 95.255.255.255--> 
     </ipSecurity> 
    </security> 
</system.webServer> 
संबंधित मुद्दे