我的ASP.NET web.config中的自定义XML节点/标记?

我的ASP.NET web.config中的自定义XML节点/标记?,asp.net,xml,tags,Asp.net,Xml,Tags,我们在web应用程序中使用安全修整,因此需要以下节点: <location path="admin/employees" xdt:Transform="Replace" xdt:Locator="Match(path)"> <system.web> <authorization> <allow roles="domain\role1,domain\role2"/> <de

我们在web应用程序中使用安全修整,因此需要以下节点:

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

注意,我们也进行转换。由于角色因我们拥有的各种环境(开发、登台和生产)而异,因此在所有三种配置中实现转换非常繁琐

我想做的是将所有位置节点封装到父节点中,可能称为
。这样,我就可以在locations节点上实现转换,而不是像这样在每个location节点上实现转换:

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


这是可能的吗?

除非您想编写一些自定义位以在部署后运行,否则您将无法使用MS Build转换。是的,设置每个环境有点乏味,但这就是beast现在的本质

我过去曾使用Nant来构建和解决一些转换问题。对一些人来说,没有那么乏味,但仍然乏味

我希望我能给你一个更好的故事

因为您使用的是位置,所以还可以在文件夹中设置公共位并设置特定的web.config。仍然很乏味,但可能比根目录下的一个web.config文件更痛苦