web.config中的条件位置授权?

时间:2012-07-02 23:12:23

标签: c# web-config location forms-authentication iis-7.5

在IIS 7.5 web.config中,我们可以设置各种路径/文件夹的授权,如下所示:

<location path="logs/elmah/elmah.axd">
    <system.web>
      <authorization>
        <allow users="bob@example.com" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>

是否可以使此授权有条件?例如,如果它是实时服务器,而不是本地或临时或测试版或其他服务器,则仅使用此位置?

我用它来表示当前服务器是什么:

<appSettings>
    <clear />
    <add key="DeploymentEnv" value="Debug" />
</appSettings>

然后web.config转换为将DeploymentEnv更改为正确的值。

2 个答案:

答案 0 :(得分:4)

为不同的环境提供不同的Web.config文件,这可能是正确的方法。看看Web.config transformations。 此MSDN article显示了如何配置分段配置。

答案 1 :(得分:2)

如果您要根据环境获得有条件的web.config文件,它将寻找什么?机器名称? IP地址?有条件选择合适的条件可能会变得混乱而难以维持。

最简单的方法是为每个环境配置两个或更多配置文件。您可能需要稍后添加到配置文件中的mor标签,这些标签特定于环境。拥有单独的配置文件可帮助您管理这些更改。确保对它们进行适当的命名,例如production.config uat.config等,并在将它们移动到其他环境时将它们重命名为web.config。