IdnMapping.UseStd3AsciiRules Egenskap

Definition

Hämtar eller anger ett värde som anger om standard- eller avslappnade namngivningskonventioner används i åtgärder som utförs av medlemmar i det aktuella IdnMapping objektet.

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

Egenskapsvärde

trueom standardnamngivningskonventioner används i åtgärder; annars . false

Exempel

I följande exempel genereras URL:er som innehåller tecken i ASCII-intervallet från U+0000 till U+007F och skickar dem till metoden för GetAscii(String) två IdnMapping objekt. Ett objekt har egenskapen UseStd3AsciiRules inställd på true, och det andra objektet har värdet false. Utdata visar de tecken som är ogiltiga när egenskapen UseStd3AsciiRules är true men giltig när den är 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

Kommentarer

Domännamn som följer standardnamnregler består av en specifik delmängd av tecken i US-ASCII teckenintervall. Tecknen är bokstäverna A till Z, siffrorna 0 till 9, bindestrecket (-) (U+002D) och periodtecknet (.). Fallet med tecknen är inte betydande. Med avslappnade namngivningskonventioner kan du använda ett bredare antal ASCII-tecken, inklusive blankstegstecknet (U+0020), utropstecknet (U+0021) och underbar-tecknet (U+005F). Om UseStd3AsciiRules är truekan endast standardtecken visas i en etikett som returneras av GetAscii metoden.

Som standard är falsevärdet för UseStd3AsciiRules egenskapen , och en expanderad delmängd av ASCII-tecken tillåts i en etikett.

Note

Klassen IdnMapping förbjuder användning av de icke-uppspelningsbara tecknen U+0000 till U+001F och U+007F i domännamnsetiketter oavsett inställningen för UseStd3AsciiRules egenskapen. Det här förbudet minskar risken för säkerhetsattacker, till exempel namnförfalskning.

Gäller för