当path为空而不是“。”时,web.config安全性的location元素。

时间:2011-05-17 15:05:48

标签: c# security web-config

我正在使用其中一个夜间resharper版本,最近我发现它指出了这条消息"位置元素不可用:路径为空"给出以下web.config代码

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

我发现来自resharper的这句话是可疑的,因为我使用了像这样的位置元素而没有问题。

空白路径是否只是将其默认为".",因为MSDN表示路径属性的默认值?

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

2 个答案:

答案 0 :(得分:2)

path的默认值仅在您不覆盖时才".";这一点,<location>在功能上等同于<location path="."> - 但<location path="">是不同的。虽然空白路径不是假设被使用;如果它被使用,那很可能是一种错误.net处理空路径。

答案 1 :(得分:1)

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

然而根据MSDN

  

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

所以你可以省略path属性,这可以防止Resharper错误。