2014-05-17 7 views
8

मेरी web.config में मैंक्या वेब में एक नया अनुभाग "डालने" का कोई तरीका है। ट्रांसफॉर्म का उपयोग करके कॉन्फ़िगर करें?

<system.webServer> 

    <modules> 
     **some code** 
    </modules> 
    <handlers> 
     **some code**  
    </handlers> 

    </system.webServer> 

मैं इसे कैसे बदलना है तो मैं "system.webServer" में "सुरक्षा" के लिए एक नया उप खंड इंजेक्षन कर सकते हैं निम्नलिखित है? मैंने जो कुछ भी कोशिश की है और अब तक खोज में असफल रहा है।

मैं क्या इच्छा नीचे दिखाया गया है:

<system.webServer> 

    <modules> 
     **some code** 
    </modules> 
    <handlers> 
     **some code**  
    </handlers> 

    <security> 
     <ipSecurity allowUnlisted="false" denyAction="NotFound"> 
     <add allowed="true" ipAddress="10.148.176.10" /> 
     </ipSecurity> 
    </security> 

    </system.webServer> 
+0

जहां तक ​​मुझे पता है कि web.config केवल एप्लिकेशन पर शुरू होने पर ही पढ़ा जाता है, भले ही आप इसका मतलब यह न लें कि ऐप पुनरारंभ होने तक प्रभावी हो जाएगा। – Dalorzo

+0

'web.config' बदलना एक ऐप पुनरारंभ करेगा। आप इसे तैनाती के दौरान एक परिवर्तन से उत्पन्न कर सकते हैं, लेकिन ऐसा लगता है कि ओपी सर्वर पर आधारित आईपी पते का उपयोग करना चाहता है। यह संभव हो सकता है (होस्टिंग सेटअप के आधार पर) हालांकि इसमें XSLT के साथ ऐसा करने के लिए कुछ भी नहीं है। – harpo

+0

@harpo स्पष्टीकरण के लिए, मैं ट्रांसफॉर्म का उपयोग करके तैनाती के दौरान अनुभाग जोड़ने में सक्षम होना चाहता हूं। चीयर्स पॉल –

उत्तर

17

मिले समाधान है कि काम किया।

<system.webServer> 
    <security xdt:Transform="Insert"> 
     <ipSecurity allowUnlisted="false" denyAction="NotFound"> 
     <add allowed="true" ipAddress="10.148.176.10" /> 
     </ipSecurity> 
    </security> 
    </system.webServer> 

मैं Web.Config के दूसरे हिस्से में यह erroring था लिखने में कोई गलती करने के लिए प्रश्न पोस्ट करने से पहले, लेकिन कारण यह करने की कोशिश की: मेरे Web.Azure.Config फ़ाइल के भीतर मैं निम्नलिखित जोड़ने के लिए किया था।

0

ऐसा लगता है कि तैनाती के लिए सबसे अच्छा समाधान Web.Azure.Config में निर्दिष्ट करना होगा, जैसा कि आपने अपने उत्तर में निर्दिष्ट किया है।

बस इस मजेदार के लिए, इस एक्सएसएलटी समाधान को पोस्ट करने के लिए आप या तो <security> तत्व को आईपी पते के साथ जोड़ने के लिए उपयोग कर सकते हैं यदि यह अस्तित्व में नहीं था, या बाद में अतिरिक्त प्रविष्टियों को जोड़ने के लिए उपयोग किया जाता है। निष्पादित करते समय ipAddress पैरामीटर में आईपी पता सेट करें। यदि ipAddress निर्दिष्ट नहीं है, तो यह कुछ भी नहीं करता है।

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output omit-xml-declaration="yes" indent="yes"/> 
    <xsl:param name="ipAddress"/> 

    <xsl:template match="@*|node()"> 
     <xsl:copy> 
      <xsl:apply-templates select="@*|node()"/> 
     </xsl:copy> 
    </xsl:template> 

    <!--Create security/ipSecurity with specified IP address, 
     if specified in param--> 
    <xsl:template match="system.webServer[not(security)]"> 
     <xsl:copy> 
      <xsl:apply-templates select="@*|node()"/> 
      <xsl:if test="$ipAddress"> 
       <security> 
        <ipSecurity allowUnlisted="false" denyAction="NotFound"> 
         <add allowed="true" ipAddress="{$ipAddress}" /> 
        </ipSecurity> 
       </security> 
      </xsl:if> 
     </xsl:copy>  
    </xsl:template> 

    <!--Add an allowed IP address to existing security/ipSecurity entry, 
     if IP address is specified in param --> 
    <xsl:template match="security/ipSecurity"> 
     <xsl:copy> 
      <xsl:apply-templates select="@*|node()"/> 
      <xsl:if test="$ipAddress"> 
       <add allowed="true" ipAddress="{$ipAddress}" /> 
      </xsl:if> 
     </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 
संबंधित मुद्दे

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