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>
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.
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.
, 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.