我们在网络应用中使用安全修整,因此需要以下节点:
<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>
。这样,我可以在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>
这可能吗?
答案 0 :(得分:0)
除非您想在部署后编写一些自定义位以运行,否则您将无法使用MS Build转换。是的,必须设置每个环境有点乏味,但现在这就是野兽的本质。
我过去使用Nant来构建和征服一些转型问题。对某些人来说,有点乏味,但仍然乏味。
我希望我有一个更好的故事。
由于您正在使用位置,您还可以在文件夹中设置公共位并设置特定的web.config。仍然很乏味,但可能不如根源上的单个web.config文件那么痛苦。