Я работаю над быстрым генератором капчей для простого сайта, который я собираю, и я надеюсь передать зашифрованный ключ в URL-адрес страницы. Я мог бы, вероятно, сделать это как параметр строки запроса достаточно простым, но я надеюсь не слишком (просто потому, что ничего не убегает от строки запроса) ...C# Byte [] to Url Friendly String
Мой код шифрования создает байт [], который затем преобразованный с помощью Convert.ToBase64String (byte []) в строку. Однако эта строка по-прежнему не совсем понятна для URL, поскольку она может содержать такие вещи, как «/» и «=». Кто-нибудь знает о лучшей функции в .NET framework для преобразования массива байтов в дружественную строку?
Я знаю все о System.Web.HttpUtility.UrlEncode() и его эквивалентах, однако они работают только с параметрами строки запроса. Если я url кодирую '=' внутри пути, мой веб-сервер возвращает ошибку 400 Bad Request.
В любом случае, не является критической проблемой, но надеясь, что кто-то может дать мне хорошее решение
** EDIT: Просто чтобы быть абсолютно уверен, что именно я делаю со строкой, я полагал, что будет поставлять немного больше информации.
Байт [], который является результатом моего алгоритма шифрования, должен передаваться через какой-то алгоритм, чтобы превратить его в дружественную URL-строку. После этого он становится содержимым XElement, который затем используется как исходный документ для преобразования XSLT и используется как часть атрибута href для привязки. Я не верю, что преобразование xslt вызывает проблемы, поскольку то, что происходит на пути, похоже, является параметром строки закодированного запроса, но вызывает HTTP 400
Я также пробовал HttpUtility.UrlPathEncode() на строка base64, но это, кажется, не делать трюк либо (я до сих пор в конечном итоге с «/» s в моем URL) **
Серьезно? Я должен попробовать это сейчас ... – LorenVS
+1: Base64 - более компактное кодирование, чем просто использование шестнадцатеричных цифр из «BitConverter.ToString». – LukeH
Работал как шарм ... Злая (мало известная) функция там ... Спасибо человеку – LorenVS