<Элемент 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, необходимо выполнить следующие два изменения:
Добавьте следующую строку в файл machine.config в каталоге платформа .NET Framework 2.0:
<section name="uri" type="System.Configuration.UriSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Укажите, нужно ли применять к доменному имени синтаксический анализ международного доменного имени (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>