Поделиться через


<Элемент idn> (параметры URI)

Указывает, применяется ли анализ международного доменного имени (IDN) к доменному имени.

<Конфигурации>
  <Uri>
    <Idn>

Синтаксис

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

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Элемент Описание
enabled Указывает, применяется ли анализ международного доменного имени (IDN) к доменному имени. Значение по умолчанию — none.

Дочерние элементы

Нет

Родительские элементы

Элемент Описание
uri Содержит параметры, определяющие, как платформа .NET Framework обрабатывает веб-адреса, выраженные с помощью универсальных идентификаторов ресурсов (URI).

Комментарии

Существующий Uri класс был расширен в платформа .NET Framework 3.5. 3.0 с пакетом обновления 1 (SP1) и 2.0 с пакетом обновления 1 (SP1) с поддержкой международных идентификаторов ресурсов (IRI) и международных доменных имен (IDN). Текущие пользователи не увидят никаких изменений в поведении платформа .NET Framework 2.0, если только они не включили поддержку IRI и IDN. Это обеспечивает совместимость приложений с предыдущими версиями платформы .NET Framework.

Чтобы включить поддержку IRI, необходимо выполнить следующие два изменения:

  1. Добавьте следующую строку в файл machine.config в каталоге платформа .NET Framework 2.0:

    <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

    При этом значении имена доменов из Юникода будут преобразовываться в их эквиваленты в Punycode (IDN-имена).

  • idn enabled = AllExceptIntranet

    Это значение преобразует все доменные имена Юникода, не размещенные в локальной интрасети, для использования эквивалентов Punycode (имен IDN). В этом случае для обработки международных имен в локальной интрасети DNS-серверы, используемые для интрасети, должны поддерживать разрешение имен в Юникоде.

  • idn enabled = None

    При этом значении имена доменов в Юникоде не будут преобразовываться в их эквиваленты в Punycode. Это значение по умолчанию, которое совместимо с поведением платформы .NET Framework 2.0.

При включенном IDN метки в Юникоде в доменном имени будут преобразованы в аналоги в кодировке Punicode. Имена Punicode содержат только символы ASCII и всегда начинаются с префикса "xn--". Это сделано для того, чтобы поддерживать существующие DNS-серверы в интрасети, так как большинство DNS-серверов поддерживает только символы ASCII (см. RFC 3940).

Файлы конфигурации.

Этот элемент может использоваться в файле конфигурации приложения или в файле конфигурации компьютера (Machine.config).

Пример

В следующем примере показана конфигурация, используемая классом Uri для поддержки синтаксического анализа IRI и имен IDN:

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

См. также раздел