Konwersja nazwy hosta proxy na IDNA ASCII w PowerShell
Konwertuj umiędzynarodowioną nazwę domeny na jej postać IDNA ASCII, gdy konsument punktu końcowego proxy nie może rozwiązać nazwy hosta Unicode.
Nazwa hosta proxy może w wyświetlanej postaci zawierać znaki międzynarodowe. Klient lub resolver oczekujący postaci IDNA ASCII potrzebuje przekonwertowanej nazwy hosta, a nie dowolnej kopii całego URL-a z ucieczką procentową.
W PowerShell .NET udostępnia konwersję bezpośrednio:
$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 to tylko nazwa domeny. Port i schemat pozostają osobno. Użyj wynikowego proxy w kliencie HTTP, który wysyła żądanie.
Dla już przeanalizowanego Uri IdnHost udostępnia jego reprezentację nazwy hosta zgodną z IDNA. Sprawdź oryginalny punkt końcowy, zamiast wielokrotnie kodować już zakodowaną etykietę.
W błędzie rozwiązywania odróżnij nazwę hosta proxy od nazwy hosta miejsca docelowego. Konwersja jednej nie poprawia literówki ani brakującego rekordu DNS w drugiej. Zachowaj zamierzoną nazwę hosta także dla tożsamości certyfikatu; zastąpienie jej dowolnym adresem IP zmienia inną część połączenia.