Proksiserveri hostinimi võib oma kuvatavas vormis sisaldada rahvusvahelisi märke. Klient või lahendaja, kes ootab IDNA ASCII kuju, vajab selle hostinime teisendamist, mitte suvalist protsentkodeeritud koopiat kogu URL-ist.

PowerShellis pakub .NET teisendust otse:

$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 on ainult domeeninimi. Port ja skeem jäävad eraldi. Kasutage saadud proksiserverit HTTP-kliendis, mis päringu teeb.

Juba parsitud Uri puhul pakub IdnHost selle IDNA-ga ühilduvat hostinime esitust. Vaadake üle algne lõpp-punkt, selle asemel et juba kodeeritud silti korduvalt kodeerida.

Lahendusvea korral eristage proksiserveri hostinime sihtkoha hostinimest. Ühe teisendamine ei paranda teise kirjaviga ega puuduvat DNS-kirjet. Säilitage kavandatud hostinimi ka sertifikaadi identiteedi jaoks; selle asendamine suvalise IP-aadressiga muudab ühenduse teist osa.

Seotud artiklid