Spécifiez plus d'un répertoire dans Web.Élément de chemin D'emplacement de Config

Dans mon ASP.NET fichier de configuration Web j'ai les éléments d'emplacement suivants définis:

  <location path="">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>

  <location path="dir1">
    <system.web>
      <authorization>
        <allow users="?"/>
      </authorization>
    </system.web>
  </location>

  <location path="dir2">
    <system.web>
      <authorization>
        <allow users="?"/>
      </authorization>
    </system.web>
  </location>

L'exemple ci-dessus spécifie que tous les répertoires seront verrouillés aux utilisateurs anonymes sauf les deux répertoires dir1 et dir2.

Je suis curieux de savoir s'il existe une syntaxe que je peux utiliser qui me permettra de définir plus d'un répertoire dans un élément d'emplacement. Par exemple, il serait pratique si nous pouvions faire quelque chose comme ça...

  <location path="dir1,dir2,etc">
    <system.web>
      <authorization>
        <allow users="?"/>
      </authorization>
    </system.web>
  </location>
23
demandé sur Jed 2011-01-05 23:18:03

3 réponses

Désolé, mais la propriété path ne permet pas d'utiliser "," donc, vous devez écrire l'étiquette pour tous chemin, Ou vous pouvez créer un site web.config dans chaque répertoire.

14
répondu Andrei Andrushkevich 2011-01-05 20:20:19

Vous ne pouvez pas spécifier plusieurs éléments dans l'attribut path, mais vous pouvez utiliser l'attribut configSource.

Par exemple, le web original suivant.fichier de configuration:

<?xml version="1.0"?>
<configuration>
  <location path="form1.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="form2.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="form3.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="form4.aspx">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="form5.aspx">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="form6.aspx">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>

Peut être remplacé par le web équivalent suivant.config, autoriser.config, et de le nier.fichiers de configuration:

Web.config

<?xml version="1.0"?>
<configuration>
  <location path="form1.aspx">
    <system.web>
      <authorization configSource="allow.config" />
    </system.web>
  </location>
  <location path="form2.aspx">
    <system.web>
      <authorization configSource="allow.config" />
    </system.web>
  </location>
  <location path="form3.aspx">
    <system.web>
      <authorization configSource="allow.config" />
    </system.web>
  </location>
  <location path="form4.aspx">
    <system.web>
      <authorization configSource="deny.config" />
    </system.web>
  </location>
  <location path="form5.aspx">
    <system.web>
      <authorization configSource="deny.config" />
    </system.web>
  </location>
  <location path="form6.aspx">
    <system.web>
      <authorization configSource="deny.config" />
    </system.web>
  </location>
</configuration>

Autoriser.config

<?xml version="1.0"?>
<authorization>
  <allow users="*"/>
</authorization>

Nier.config

<?xml version="1.0"?>
<authorization>
  <deny users="*"/>
</authorization>

L'utilité de cette approche augmente avec le nombre de règles d'autorisation/refus dans chaque section augmenter.

37
répondu Ryan Prechel 2013-05-02 19:37:24

, Il est possible de définir le chemin d'accès à un dossier spécifique. Par exemple, nous avons quelques pages aspx:

  • / data / pages / form1.aspx
  • / data / pages / form2.aspx
  • / data / pages / form3.aspx

En créant cette règle dans le web.configuration:

<location path="data/pages">
    <system.webServer>
        <httpProtocol>
            <customHeaders>
                <remove name="X-Frame-Options" />
                <add name="X-Frame-Options" value="SAMEORIGIN" />
            </customHeaders>
        </httpProtocol>
    </system.webServer>
</location>

Toutes les ressources de {[1] } seront affectées.

0
répondu aleha 2018-06-13 09:55:27