Konvertera ett proxy-värdnamn till IDNA ASCII i PowerShell
Konvertera ett internationaliserat domännamn till dess IDNA ASCII-form när konsumenten av en proxy-slutpunkt inte kan matcha Unicode-värdnamnet.
Ett proxy-värdnamn kan innehålla internationella tecken i sin visade form. En klient eller resolver som förväntar sig IDNA ASCII-formen behöver det värdnamnet konverterat, inte en godtycklig procent-escapad kopia av hela URL:en.
I PowerShell exponerar .NET konverteringen direkt:
$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 är bara domännamnet. Porten och schemat hålls åtskilda. Använd den resulterande proxyn i HTTP-klienten som gör begäran.
För en redan parsad Uri exponerar IdnHost sin IDNA-kompatibla värdnamnsrepresentation. Granska den ursprungliga slutpunkten i stället för att upprepat koda en redan kodad etikett.
Skilj på proxyns värdnamn och målets värdnamn i ett upplösningsfel. Att konvertera det ena rättar inte ett stavfel eller en saknad DNS-post på det andra. Behåll också det avsedda värdnamnet för certifikatidentiteten; att ersätta det med en godtycklig IP-adress ändrar en annan del av anslutningen.