【问题标题】:Conditional location authorization in web.config?web.config中的条件位置授权?
【发布时间】:2012-07-02 23:12:22
【问题描述】:

在 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 更改为正确的值。

【问题讨论】:

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


    【解决方案1】:

    为不同的环境使用不同的 Web.config 文件可能是正确的方法。看看Web.config transformations。 这个MSDN article 展示了如何配置暂存配置。

    【讨论】:

    • +1 当然可以。我已经在应用程序设置中使用转换,所以只需要使用转换在生产 web.config 中只包含位置节点
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 2011-03-13
      • 2010-10-13
      • 2012-10-06
      • 2011-04-21
      • 1970-01-01
      • 2011-10-12
      相关资源
      最近更新 更多