我为我的网站创建了禁止规则,其中列出了一些IP地址,这些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="*"/>
答案 0 :(得分:0)
我通过在输入参数中添加额外的一对“ {}”解决了我的问题,从而达到了目的。 新条件如下:
<add input="{{REMOTE_ADDR}}" pattern="10.*.*.*" negate="true" />
<add input="{{REMOTE_ADDR}}" pattern="194.103.31.*" negate="true" />