IdnMapping.UseStd3AsciiRules Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.