IdnMapping.UseStd3AsciiRules Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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ů.