<idn> 元素(URI 设置)
指定是否对域名应用国际化域名 (IDN) 分析。
configuration
<uri>
<idn>
语法
<idn
enabled="All|AllExceptIntranet|None"
/>
特性和元素
下列各节描述了特性、子元素和父元素。
特性
元素 | 说明 |
---|---|
enabled |
指定是否对域名应用国际化域名 (IDN) 分析。默认值为 none。 |
子元素
无
父元素
元素 | 说明 |
---|---|
uri | 包含的设置可用于指定 .NET Framework 如何处理使用统一资源标识符 (URI) 表示的 Web 地址。 |
备注
现有的 Uri 类在已在 .NET Framework 3.5、 3.0 SP1 和 2.0 SP1 中得到了扩展,支持国际资源标识符 (IRI) 和国际化域名 (IDN)。 当前用户看不到任何 NET Framework 2.0 行为的改变,除非他们专门启用 IRI 和 IDN 支持。 这确保了 NET Framework 以前版本的应用程序兼容性。
若要启用对 IRI 的支持,需进行以下两项更改:
将以下行添加到 .NET Framework 2.0 目录下的 machine.config 文件:
<section name="uri" type="System.Configuration.UriSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
指定是否要对域名应用国际化域名 (IDN) 分析,以及是否应该应用 IRI 分析规则。 这可以在 machine.config 或应用配置文件中完成。
根据所用的 DNS 服务器,IDN 有三个可能的值:
idn enabled = All
此值会将所有 Unicode 域名转换为它们的 Punycode 等效项(IDN 名称)。
idn enabled = AllExceptIntranet
此值将转换所有不在本地 Intranet 上的 Unicode 域名以使用 Punycode 等效项(IDN 名称)。 在这种情况下,若要处理本地 Intranet 上的国际化名称,用于 Intranet 的 DNS 服务器应该支持 Unicode 名称解析。
idn enabled = None
此值不会将任何 Unicode 域名转换为使用 Punycode。 这是与 .NET Framework 2.0 行为一致的默认值。
启用 IDN 可以将域名中所有 Unicode 标签转换成标签的 Punycode 等同项。 Punycode 名称只包含 ASCII 字符,并且始终以 xn-- 前缀开头。 这样是为了支持 Internet 上的 DNS 服务器,因为大部分 DNS 服务器仅支持 ASCII 字符(参见 RFC 3940)。
配置文件
此元素可在应用程序配置文件或计算机配置文件 (Machine.config) 中使用。
示例
以下示例显示 Uri 类用于支持 IRI 分析和 IDN 名称的配置:
<configuration>
<uri>
<idn enabled="All" />
<iriParsing enabled="true" />
</uri>
</configuration>