Я создал правило блокировки для своего сайта, где я перечисляю несколько IP-адресов, которым разрешен доступ к странице администратора моего сайта.Условие выглядит следующим образом:
<xsl:template match="/configuration/system.webServer/rewrite/rules/rule[@name='adminBlockRule']">
<xsl:comment>Blockera Admin för alla utom vissa IP-adresser</xsl:comment>
<rule name="adminBlockRule" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^(Admin/|Sysadmin/).*$" ignoreCase="true"/>
<conditions>
<xsl:comment>Generell</xsl:comment>
<add input="{REMOTE_ADDR}" pattern="10.*.*.*" negate="true" />
<add input="{REMOTE_ADDR}" pattern="194.103.31.*" negate="true" />
... More rules
</conditions>
<action type="AbortRequest" />
</rule>
<xsl:comment>Hit</xsl:comment>
</xsl:template>
Когда я помещаю его в мой файл web.config, он работает нормально, но когда я помещаю его в свой файл web.production.config и запускаю его с XSLT, он удаляет"{REMOTE_ADDR}", поэтому выходные данные выглядят так:
<rule name="adminBlockRule" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^(Admin/|Sysadmin/).*$" ignoreCase="true" />
<conditions>
<!--Generell-->
<add input="" pattern="10.*.*.*" negate="true" />
<add input="" pattern="194.103.31.*" negate="true" />
</conditions>
<action type="AbortRequest" />
</rule>
Кто-нибудь знает, как решить эту проблему?
Я использую версию:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:saml="urn:dk.nita.saml20.configuration"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl saml">
<xsl:output method="xml"
indent="yes"/>
<xsl:strip-space elements="*"/>