Partager via


IdnMapping.UseStd3AsciiRules Propriété

Définition

Obtient ou définit une valeur qui indique si les conventions d'affectation de noms standard ou assouplies sont utilisées dans des opérations exécutées par les membres de l'objet IdnMapping actuel.

public:
 property bool UseStd3AsciiRules { bool get(); void set(bool value); };
public bool UseStd3AsciiRules { get; set; }
member this.UseStd3AsciiRules : bool with get, set
Public Property UseStd3AsciiRules As Boolean

Valeur de propriété

true si les conventions d'affectation de noms standard sont utilisées dans les opérations ; sinon, false.

Exemples

L’exemple suivant génère des URL qui contiennent des caractères dans la plage ASCII de U+0000 à U+007F et les transmet à la GetAscii(String) méthode de deux IdnMapping objets. La propriété d’un objet est UseStd3AsciiRules définie truesur , et l’autre objet a la valeur false. La sortie affiche les caractères qui ne sont pas valides lorsque la UseStd3AsciiRules propriété est true valide quand elle est false.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      int nFailed = 0;
      IdnMapping idnStd = new IdnMapping();
      idnStd.UseStd3AsciiRules = true;

      IdnMapping idnRelaxed = new IdnMapping();
      idnRelaxed.UseStd3AsciiRules = false;  // The default, but make it explicit.

      for (int ctr = 0; ctr <= 0x7F; ctr++) {
         string name = $"Prose{ctr}ware.com";

         bool stdFailed = false;
         bool relaxedFailed = false;
         string punyCode = "";
         try {
            punyCode = idnStd.GetAscii(name);
         }
         catch (ArgumentException) {
            stdFailed = true;
         }

         try {
            punyCode = idnRelaxed.GetAscii(name);
         }
         catch (ArgumentException) {
            relaxedFailed = true;
         }

         if (relaxedFailed != stdFailed) {
            Console.Write("U+{0:X4}     ", ctr);
            nFailed++;
            if (nFailed % 5 == 0)
               Console.WriteLine();
         }
      }
   }
}
// The example displays the following output:
//       U+0020     U+0021     U+0022     U+0023     U+0024
//       U+0025     U+0026     U+0027     U+0028     U+0029
//       U+002A     U+002B     U+002C     U+002F     U+003A
//       U+003B     U+003C     U+003D     U+003E     U+003F
//       U+0040     U+005B     U+005C     U+005D     U+005E
//       U+005F     U+0060     U+007B     U+007C     U+007D
//       U+007E
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim nFailed As Integer = 0
      Dim idnStd As New IdnMapping()
      idnStd.UseStd3AsciiRules = True
      
      Dim idnRelaxed As New IdnMapping
      idnRelaxed.UseStd3AsciiRules = False     ' The default, but make it explicit.
      
      For ctr As Integer = 0 To &h7F 
         Dim name As String = "Prose" + ChrW(ctr) + "ware.com"
         
         Dim stdFailed As Boolean = False
         Dim relaxedFailed As Boolean = False
         Dim punyCode As String
         Try
            punyCode = idnStd.GetAscii(name)
         Catch e As ArgumentException
            stdFailed = True
         End Try       
         
         Try
            punyCode = idnRelaxed.GetAscii(name)
         Catch e As ArgumentException
            relaxedFailed = True
         End Try       
         
         If relaxedFailed <> stdFailed Then
            Console.Write("U+{0:X4}     ", ctr)
            nFailed += 1
            If nFailed Mod 5 = 0 Then Console.WriteLine()         
         End If 
      Next   
   End Sub
End Module
' The example displays the following output:
'       U+0020     U+0021     U+0022     U+0023     U+0024
'       U+0025     U+0026     U+0027     U+0028     U+0029
'       U+002A     U+002B     U+002C     U+002F     U+003A
'       U+003B     U+003C     U+003D     U+003E     U+003F
'       U+0040     U+005B     U+005C     U+005D     U+005E
'       U+005F     U+0060     U+007B     U+007C     U+007D
'       U+007E

Remarques

Les noms de domaine qui suivent des règles de nommage standard se composent d’un sous-ensemble spécifique de caractères dans la plage de caractères US-ASCII. Les caractères sont les lettres A à Z, les chiffres 0 à 9, le trait d’union (-) (U+002D) et le caractère de point (.). La casse des caractères n’est pas significative. Les conventions de nommage assouplies permettent l’utilisation d’une plage plus large de caractères ASCII, y compris le caractère d’espace (U+0020), le caractère de point d’exclamation (U+0021) et le caractère de barre inférieure (U+005F). Si UseStd3AsciiRules a la valeur true, seuls les caractères standard peuvent apparaître dans une étiquette retournée par la GetAscii méthode .

Par défaut, la valeur de la UseStd3AsciiRules propriété est false, et un sous-ensemble développé de caractères ASCII est autorisé dans une étiquette.

Notes

La IdnMapping classe interdit l’utilisation des caractères non lisibles U+0000 à U+001F et U+007F dans les étiquettes de nom de domaine, quel que soit le paramètre de la UseStd3AsciiRules propriété. Cette interdiction réduit le risque d’attaques de sécurité telles que l’usurpation de noms.

S’applique à