<schemeSettings> 元素(Uri 设置)

指定如何针对特定方案分析 Uri

<schemeSettings> 
</schemeSettings>

特性和元素

以下几节描述了属性、子元素和父元素。

特性

子元素

元素

说明

<add>

添加某方案名称的方案设置。

<clear>

清除所有现有的方案设置。

<remove>

删除某个方案名称的方案设置。

父元素

元素

说明

<uri>

包含一些设置,用于指定 .NET Framework 如何处理使用统一资源标识符 (URI) 表示的 Web 地址。

备注

默认情况下,在执行路径压缩前,System.Uri 类将取消转义百分号编码的路径分隔符。 这实现为抵御类似于如下攻击的安全机制:

https://www.contoso.com/.. %2F.. %2F/Windows/System32/cmd.exe?/c+dir+c:\

如果在未正确处理百分号编码的字符的情况下将此 URI 传递给模块,可能会导致服务器执行下面的命令:

c:\Windows\System32\cmd.exe /c dir c:\

因此,System.Uri 类首先取消转义路径分隔符,然后再应用路径压缩。 将上面的恶意 URL 传递给 System.Uri 类构造函数将导致产生以下 URI:

https://www.microsoft.com/Windows/System32/cmd.exe?/c+dir+c:\\

可以将此默认行为修改为不取消转义将 schemeSettings 配置选项用于特定方案的百分号编码的路径分隔符。

配置文件

此元素可以用在应用程序配置文件或计算机配置文件 (Machine.config) 中。

示例

以下代码示例示出由 Uri 类使用的配置,以支持 http 架构非转义百分比编码的路径分隔符。

<configuration>
  <uri>
    <schemeSettings>
      <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
    </schemeSettings>
  </uri>
</configuration>

元素信息

命名空间

系统

架构名称

验证文件

是否可以为空

请参见

参考

网络设置架构

System.Configuration.SchemeSettingElement

System.Configuration.SchemeSettingElementCollection

System.Configuration.UriSection

UriSection.SchemeSettings

System.GenericUriParserOptions

System.Uri