Sdílet prostřednictvím


IdnMapping.UseStd3AsciiRules Vlastnost

Definice

Získá nebo nastaví hodnotu, která označuje, zda standardní nebo uvolněné zásady vytváření názvů jsou použity v operacích prováděných členy aktuálního IdnMapping objektu.

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

Hodnota vlastnosti

truepokud se v operacích používají standardní zásady vytváření názvů; v opačném případě . false

Příklady

Následující příklad vygeneruje adresy URL, které obsahují znaky v rozsahu ASCII od U+0000 do U+007F, a předá je GetAscii(String) metodě dvou IdnMapping objektů. Jeden objekt má vlastnost UseStd3AsciiRules nastavenou na truea druhý objekt na false. Ve výstupu se zobrazí znaky, které jsou neplatné, UseStd3AsciiRules pokud je true vlastnost, ale je platná, pokud je 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

Poznámky

Názvy domén, které se řídí standardními pravidly pojmenování, se skládají z určité podmnožiny znaků v rozsahu znaků US-ASCII. Znaky jsou písmena A až Z, číslice 0 až 9, znak spojovníku (-) (U+002D) a tečka (.). Velikost písmen není důležitá. Uvolněné zásady vytváření názvů umožňují použití širšího rozsahu znaků ASCII, včetně znaku mezery (U+0020), vykřičníku (U+0021) a znaku dolního pruhu (U+005F). Pokud UseStd3AsciiRules je true, můžou se v popisku vráceném metodou GetAscii zobrazit pouze standardní znaky.

Ve výchozím nastavení je falsehodnota UseStd3AsciiRules vlastnosti a v popisku je povolená rozšířená podmnožina znaků ASCII.

Poznámka

Třída IdnMapping zakazuje použití nedisponovatelných znaků U+0000 až U+001F a U+007F v popiscích názvů domén bez ohledu na nastavení UseStd3AsciiRules vlastnosti. Tento zákaz snižuje riziko útoků na zabezpečení, jako je falšování názvu.

Platí pro