Een proxy-hostnaam kan in de weergegeven vorm internationale tekens bevatten. Een client of resolver die de IDNA ASCII-vorm verwacht, heeft die hostnaam omgezet nodig, niet een willekeurige procent-geëscapete kopie van de hele URL.

In PowerShell stelt .NET de conversie rechtstreeks beschikbaar:

$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 is alleen de domeinnaam. De poort en het schema blijven gescheiden. Gebruik de resulterende proxy op de HTTP-client die het verzoek doet.

Voor een al geparseerde Uri toont IdnHost de IDNA-compatibele hostnaamweergave. Bekijk het oorspronkelijke eindpunt in plaats van een al gecodeerd label steeds opnieuw te coderen.

Onderscheid in een omzettingsfout de hostnaam van de proxy van die van de bestemming. Het ene omzetten lost geen spelfout of ontbrekend DNS-record bij het andere op. Behoud ook de bedoelde hostnaam voor de certificaatidentiteit; vervanging door een willekeurig IP-adres wijzigt een ander deel van de verbinding.

Gerelateerde artikelen