REMOTE_ADDR исчезает при запуске XSLT - PullRequest
0 голосов
/ 15 октября 2018

Я создал правило блокировки для своего сайта, где я перечисляю несколько 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="*"/>

1 Ответ

0 голосов
/ 08 ноября 2018

Я решил свой вопрос, добавив дополнительную пару «{}» во входной параметр, и это помогло.Новые условия выглядят так:

<add input="{{REMOTE_ADDR}}" pattern="10.*.*.*" negate="true" />
<add input="{{REMOTE_ADDR}}" pattern="194.103.31.*" negate="true" />
...