В нашем веб-приложении используется усечение безопасности, поэтому необходимы следующие узлы:
<location path="admin/employees" xdt:Transform="Replace" xdt:Locator="Match(path)">
<system.web>
<authorization>
<allow roles="domain\role1,domain\role2"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="admin/whatever" xdt:Transform="Replace" xdt:Locator="Match(path)">
<system.web>
<authorization>
<allow roles="domain\role1,domain\role2"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
Обратите внимание, что мы также делаем преобразование. Поскольку роли различаются в зависимости от различных сред, в которых мы работаем (dev, staging и production), довольно сложно реализовать преобразование во всех трех конфигурациях.
То, что я хотел бы сделать, это инкапсулировать все узлы местоположения в родительский узел, возможно, называемый <locations>
. Таким образом, я мог бы реализовать преобразование на узле местоположений вместо каждого узла местоположения следующим образом:
<locations xdt:Transform="Replace">
<location path="admin/employees">
<system.web>
<authorization>
<allow roles="domain\role1,domain\role2"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="admin/whatever">
<system.web>
<authorization>
<allow roles="domain\role1,domain\role2"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
</locations>
Возможно ли это?