Konverter et proxy-værtsnavn til IDNA ASCII i PowerShell
Konverter et internationaliseret domænenavn til dets IDNA ASCII-form, når forbrugeren af et proxy-endpoint ikke kan opløse Unicode-værtsnavnet.
Et proxy-værtsnavn kan indeholde internationale tegn i sin viste form. En klient eller resolver, der forventer IDNA ASCII-formen, har brug for at få det værtsnavn konverteret, ikke en vilkårlig procent-escapet kopi af hele URL'en.
I PowerShell eksponerer .NET konverteringen direkte:
$mapping = New-Object System.Globalization.IdnMapping
$asciiHost = $mapping.GetAscii($unicodeProxyHost)
$endpoint = New-Object System.UriBuilder
$endpoint.Scheme = 'http'
$endpoint.Host = $asciiHost
$endpoint.Port = 8080
$proxy = New-Object System.Net.WebProxy($endpoint.Uri)
unicodeProxyHost er kun domænenavnet. Porten og skemaet holdes adskilt. Brug den resulterende proxy på den HTTP-klient, der sender anmodningen.
For en allerede parset Uri eksponerer IdnHost sin IDNA-kompatible værtsnavnrepræsentation. Gennemgå det oprindelige endpoint i stedet for gentagne gange at kode en allerede kodet label.
Skeln mellem proxyens værtsnavn og destinationens værtsnavn i en opløsningsfejl. Konvertering af det ene retter ikke en tastefejl eller en manglende DNS-post på det andet. Behold også det tilsigtede værtsnavn til certifikatidentitet; udskiftning med en vilkårlig IP-adresse ændrer en anden del af forbindelsen.