<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 的支持,需进行以下两项更改:

  1. 将以下行添加到 .NET Framework 2.0 目录下的 machine.config 文件:

    <section name="uri" type="System.Configuration.UriSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />  
    
  2. 指定是否要对域名应用国际化域名 (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>

请参阅