Freigeben über


IdnMapping.UseStd3AsciiRules Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob in Vorgängen, die von den Membern des aktuellen IdnMapping-Objekts durchgeführt werden, dem Standard entsprechende oder gelockerte Namenskonventionen verwendet werden, oder legt diesen fest.

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

Eigenschaftswert

true, wenn in Vorgängen standardmäßige Namenskonventionen verwendet werden, andernfalls false.

Beispiele

Im folgenden Beispiel werden URLs generiert, die Zeichen im ASCII-Bereich von U+0000 bis U+007F enthalten, und sie werden an die GetAscii(String) -Methode von zwei IdnMapping Objekten übergeben. Für ein -Objekt ist die UseStd3AsciiRules -Eigenschaft auf truefestgelegt, für das andere -Objekt ist es auf falsefestgelegt. Die Ausgabe zeigt die Zeichen an, die ungültig sind, wenn die UseStd3AsciiRules Eigenschaft aber gültig ist true , wenn sie ist 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

Hinweise

Domänennamen, die Standardbenennungsregeln befolgen, bestehen aus einer bestimmten Teilmenge von Zeichen im US-ASCII-Zeichenbereich. Die Zeichen sind die Buchstaben A bis Z, die Ziffern 0 bis 9, der Bindestrich (-) (U+002D) und das Punktzeichen (.). Die Groß-/Kleinschreibung der Zeichen ist nicht signifikant. Gelockerte Benennungskonventionen ermöglichen die Verwendung eines breiteren Bereichs von ASCII-Zeichen, einschließlich des Leerzeichens (U+0020), des Ausrufezeichens (U+0021) und des Unterleistenzeichens (U+005F). Wenn UseStd3AsciiRules ist true, können nur Standardzeichen in einer bezeichnung angezeigt werden, die von der GetAscii -Methode zurückgegeben wird.

Standardmäßig ist falseder Wert der UseStd3AsciiRules -Eigenschaft , und eine erweiterte Teilmenge von ASCII-Zeichen ist in einer Bezeichnung zulässig.

Hinweis

Die IdnMapping -Klasse verbietet die Verwendung der nicht angezeigten Zeichen U+0000 bis U+001F und U+007F in Domänennamenbezeichnungen, unabhängig von der Einstellung der UseStd3AsciiRules Eigenschaft. Dieses Verbot verringert das Risiko von Sicherheitsangriffen, z. B. Namensspoofing.

Gilt für: