IdnMapping.UseStd3AsciiRules Vlastnost

Definice

Získá nebo nastaví hodnotu, která označuje, zda jsou standardní nebo uvolněné zásady pojmenování používány 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 generuje adresy URL obsahující znaky v rozsahu ASCII od U+0000 do U+007F a předává je metodě GetAscii(String) dvou IdnMapping objektů. Jeden objekt má vlastnost UseStd3AsciiRules nastavena na truea druhý objekt má nastaven na false. Výstup zobrazí znaky, které jsou neplatné, pokud UseStd3AsciiRules 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é následují podle standardních pravidel pojmenování, se skládají z konkrétní podmnožina znaků v oblasti znaků US-ASCII. Znaky jsou písmena A až Z, číslice 0 až 9, znak spojovníku (-) (U+002D) a tečka (.). Malá a velká písmena znaků nejsou významná. Uvolněné konvence vytváření názvů umožňují používat širší rozsah znaků ASCII, včetně znaku mezery (U+0020), vykřičníku (U+0021) a znaku podbaru (U+005F). Pokud UseStd3AsciiRules je true, mohou se v popisku vrácené metodou GetAscii objevit pouze standardní znaky.

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

Poznámka:

Třída IdnMapping zakáže použití nedisplayable 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ázvů.

Platí pro