<idn> 要素 (Uri 設定)

国際化ドメイン名 (IDN) の解析がドメイン名に適用されるかどうかを指定します。

configuration
  <uri>
    <idn>

構文

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

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

要素 説明
enabled 国際化ドメイン名 (IDN) の解析がドメイン名に適用されるかどうかを指定します。既定値は none です。

子要素

なし

親要素

要素 説明
uri .NET Framework での Uniform Resource Identifier (URI) を使用して表現された Web アドレスの処理方法を指定するための設定が含まれています。

解説

既存の Uri クラスは .NET Framework 3.5 で拡張されています。 3.0 SP1 と 2.0 SP1 では、International Resource Identifier (IRI) と国際化ドメイン名 (IDN) がサポートされます。 現在のユーザーは、自分で明確に IRI と IDN のサポートを有効にしない限り、.NET Framework 2.0 の動作からの変更に気付きません。 これにより、.NET Framework の以前のバージョンとのアプリケーションの互換性を保証します。

IRI のサポートを有効にするには、次の 2 つの変更が必要です。

  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 サーバーに応じて、次の 3 つの値を指定できます。

  • idn enabled = All

    この値は、Unicode のドメイン名があれば、それを等価の Punycode (IDN 名) に変換します。

  • idn enabled = AllExceptIntranet

    この値は、ローカル イントラネット上にないすべての Unicode ドメイン名を、等価の Punycode (IDN 名) を使用するように変換します。 このように、ローカルなイントラネットで国際名を処理する場合、このイントラネットで使用する DNS サーバーは Unicode 名の解決をサポートしている必要があります。

  • idn enabled = None

    この値は、どの Unicode のドメイン名も、Punycode を使用するように変換しません。 これは、.NET Framework 2.0 の動作と一貫した既定値です。

IDN を有効にすると、ドメイン名に含まれるすべての Unicode のラベルが Punycode のラベルに変換されます。 Punycode 名には ASCII 文字のみが含まれ、常に xn-- プレフィックスで始まります。 この理由は、ほとんどの DNS サーバーは ASCII 文字しかサポートしていないため、インターネットで既存の DNS サーバーをサポートするためです (RFC 3940 を参照)。

構成ファイル

この要素は、アプリケーション構成ファイルまたはマシン構成ファイル (Machine.config) で使用できます。

次の例では、IRI 解析と IDN 名をサポートするために Uri クラスで使用される構成を示します。

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

関連項目