Есть ли способ "вставить" новый раздел в Web?Настройка с помощью преобразований?


В моей паутине.Конфигурация у меня следующая

  <system.webServer>

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

  </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>
2 13

2 ответа:

Нашел решение, которое сработало. Внутри моей паутины.Лазурный.Конфигурационный файл мне пришлось добавить следующий:

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

Я попытался сделать это перед тем, как опубликовать вопрос, но из-за опечатки в другой части веба.Но это была ошибка.

Кажется, что лучшим решением для развертывания было бы указать в Интернете.Лазурный.Config, как вы указали в своем ответе.

Просто для удовольствия, разместив это решение XSLT, которое вы также можете использовать для добавления элемента <security> с IP-адресом, если он не существует, или вызвать позже, чтобы добавить дополнительные записи. Задайте IP-адрес в параметре 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>