Элемент <idn> (Uri Settings)
Указывает, применяется ли синтаксический анализ международного доменного имени (IDN) к имени домена.
Иерархия схемы
Синтаксис
<idn
enabled="All|AllExceptIntranet|None"
/idn>
Атрибуты и элементы
В следующих разделах описаны атрибуты, дочерние и родительские элементы.
Атрибуты
Элемент |
Описание |
---|---|
enabled |
Задает, применяется ли синтаксический анализ международного доменного имени к имени домена. Значение по умолчанию — нет. |
Дочерние элементы
Нет
Родительские элементы
Элемент |
Описание |
---|---|
Содержит параметры, определяющие, как платформа .NET Framework обрабатывает веб-адреса, выраженные с использованием универсальных кодов ресурсов (URI). |
Примечания
Существующий класс Uri был расширен в .NET Framework 3.5, 3.0 SP1 и 2.0 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" />
Указать, применяется ли синтаксический анализ международного доменного имени к имени домена и должны ли применяться правила синтаксического анализа 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 все метки в Юникоде в именах доменов будут преобразовываться в их эквиваленты в Punycode. Имена в Punycode содержат только символы ASCII и всегда начинаются с приставки xn--. Это сделано для того, чтобы поддерживать существующие DNS-серверы в интрасети, так как большинство DNS-серверов поддерживает только символы ASCII (см. RFC 3940).
Файлы конфигурации
Этот элемент может быть использован в файле конфигурации приложения или в файле конфигурации компьютера (Machine.config).
Пример
Описание
В следующем примере кода показывается, как использовать класс Uri для поддержки синтаксического анализа IRI и имен IDN.
Код
<configuration>
<uri>
<idn enabled="All" />
<iriParsing enabled="true" />
</uri>
</configuration>