IdnMapping.UseStd3AsciiRules Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.