IdnMapping.UseStd3AsciiRules Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob in Vorgängen, die von den Membern des aktuellen IdnMapping-Objekts durchgeführt werden, dem Standard entsprechende oder gelockerte Namenskonventionen verwendet werden, oder legt diesen fest.
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
Eigenschaftswert
true
, wenn in Vorgängen standardmäßige Namenskonventionen verwendet werden, andernfalls false
.
Beispiele
Im folgenden Beispiel werden URLs generiert, die Zeichen im ASCII-Bereich von U+0000 bis U+007F enthalten, und sie werden an die GetAscii(String) -Methode von zwei IdnMapping Objekten übergeben. Für ein -Objekt ist die UseStd3AsciiRules -Eigenschaft auf true
festgelegt, für das andere -Objekt ist es auf false
festgelegt. Die Ausgabe zeigt die Zeichen an, die ungültig sind, wenn die UseStd3AsciiRules Eigenschaft aber gültig ist true
, wenn sie ist 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
Hinweise
Domänennamen, die Standardbenennungsregeln befolgen, bestehen aus einer bestimmten Teilmenge von Zeichen im US-ASCII-Zeichenbereich. Die Zeichen sind die Buchstaben A bis Z, die Ziffern 0 bis 9, der Bindestrich (-) (U+002D) und das Punktzeichen (.). Die Groß-/Kleinschreibung der Zeichen ist nicht signifikant. Gelockerte Benennungskonventionen ermöglichen die Verwendung eines breiteren Bereichs von ASCII-Zeichen, einschließlich des Leerzeichens (U+0020), des Ausrufezeichens (U+0021) und des Unterleistenzeichens (U+005F). Wenn UseStd3AsciiRules ist true
, können nur Standardzeichen in einer bezeichnung angezeigt werden, die von der GetAscii -Methode zurückgegeben wird.
Standardmäßig ist false
der Wert der UseStd3AsciiRules -Eigenschaft , und eine erweiterte Teilmenge von ASCII-Zeichen ist in einer Bezeichnung zulässig.
Hinweis
Die IdnMapping -Klasse verbietet die Verwendung der nicht angezeigten Zeichen U+0000 bis U+001F und U+007F in Domänennamenbezeichnungen, unabhängig von der Einstellung der UseStd3AsciiRules Eigenschaft. Dieses Verbot verringert das Risiko von Sicherheitsangriffen, z. B. Namensspoofing.