当路径为空“”而不是“.”时,Web.config 安全性的位置元素

本文关键字:config Web 安全性 元素 位置 路径 | 更新日期: 2023-09-27 17:56:35

我正在使用一个夜间锐化器构建,最近我刚刚遇到它,指出此消息"位置元素未使用:路径为空"给定以下 web.config 代码

 <location path="">
    <system.web>
      <authorization>
        <allow roles="Administrator" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>

我发现 resharper 的这个陈述是可疑的,因为我使用了这样的位置元素而没有问题。

空白路径是否只是默认为 "." 正如 MSDN 所说的是路径属性的默认值?

使<location path=""><location path=".">功能等同?

当路径为空“”而不是“.”时,Web.config 安全性的位置元素

path的默认值仅在不覆盖它时才".";这<location>在功能上等同于<location path="."> - 但<location path="">不同。空白路径虽然不应该被使用;如果它被使用,那很可能是 .NET 处理空路径方式中的错误。

这个错误肯定是Resharper过度热心的另一个例子。Microsoft建议在 ASP.NET 4 的重大更改中使用空白路径。

然而,根据MSDN,

使用缺少路径属性的位置将配置设置应用于当前目录和所有子目录。

因此,您可以省略 path 属性,这可以防止锐化器错误。