<idn> 元素(Uri 设置)

指定是否将国际化域名(IDN)分析应用于域名。

<配置><URI><idn>

Syntax

<idn
  enabled="All|AllExceptIntranet|None"
/>

特性和元素

下列各节描述了特性、子元素和父元素。

特性

元素 说明
enabled 指定是否将国际化域名(IDN)分析应用于域名。默认值为 none。

子元素

None

父元素

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

注解

现有 Uri 类已在 .NET Framework 3.5 中扩展。 支持国际资源标识符(IRI)和国际化域名(IDN)的 3.0 SP1 和 2.0 SP1。 当前用户不会看到 .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 或 app.config 文件中完成。

IDN 有三个可能的值,具体取决于使用的 DNS 服务器:

  • 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)。

Example

以下示例演示类用于 Uri 支持 IRI 分析和 IDN 名称的配置:

<configuration>
  <uri>
    <idn enabled="All" />
    <iriParsing enabled="true" />
  </uri>
</configuration>

另请参阅