Bagikan melalui


IdnMapping.UseStd3AsciiRules Properti

Definisi

Mendapatkan atau menetapkan nilai yang menunjukkan apakah konvensi penamaan standar atau santai digunakan dalam operasi yang dilakukan oleh anggota objek saat ini IdnMapping .

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

Nilai Properti

true jika konvensi penamaan standar digunakan dalam operasi; jika tidak, false.

Contoh

Contoh berikut menghasilkan URL yang berisi karakter dalam ASCII berkisar dari U+0000 hingga U+007F dan meneruskannya ke GetAscii(String) metode dua IdnMapping objek. Satu objek memiliki properti yang UseStd3AsciiRules diatur ke true, dan objek lainnya mengaturnya ke false. Output menampilkan karakter yang tidak valid ketika UseStd3AsciiRules properti tetapi true valid ketika adalah 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

Keterangan

Nama domain yang mengikuti aturan penamaan standar terdiri dari subset karakter tertentu dalam rentang karakter US-ASCII. Karakternya adalah huruf A hingga Z, digit 0 hingga 9, karakter tanda hubung (-) (U+002D), dan karakter titik (.). Kasus karakter tidak signifikan. Konvensi penamaan yang dilonggarkan memungkinkan penggunaan berbagai karakter ASCII yang lebih luas, termasuk karakter spasi (U+0020), karakter tanda seru (U+0021), dan karakter garis bawah (U+005F). Jika UseStd3AsciiRules adalah true, hanya karakter standar yang dapat muncul dalam label yang dikembalikan oleh GetAscii metode .

Secara default, nilai UseStd3AsciiRules properti adalah false, dan subset karakter ASCII yang diperluas diizinkan dalam label.

Catatan

Kelas IdnMapping ini melarang penggunaan karakter yang tidak dapat diputar U+0000 hingga U+001F, dan U+007F dalam label nama domain terlepas dari UseStd3AsciiRules pengaturan properti. Larangan ini mengurangi risiko serangan keamanan seperti spoofing nama.

Berlaku untuk