Пользовательский узел XML / тег в моем ASP.NET web.config? - PullRequest
0 голосов
/ 06 мая 2011

В нашем веб-приложении используется усечение безопасности, поэтому необходимы следующие узлы:

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

Возможно ли это?

1 Ответ

0 голосов
/ 06 мая 2011

Если вы не хотите писать какие-то пользовательские биты для запуска после развертывания, вы застряли с преобразованием MS Build.Да, это немного утомительно, чтобы настроить каждую среду, но такова природа зверя прямо сейчас.

В прошлом я использовал Nant для построения и преодоления некоторых проблем трансформации.Немного менее утомительно, для некоторых, но все же утомительно.

Хотелось бы, чтобы у меня была для вас лучшая история.

Поскольку вы используете местоположения, вы также можете установить общие биты в папкахи настройте определенный файл web.config.Все еще утомительно, но может быть меньше боли, чем отдельный файл web.config в корне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...