HttpServerUtility.UrlTokenDecode только возвращает null - PullRequest
3 голосов
/ 29 июня 2011

У меня, похоже, проблема с HttpServerUtility.UrlTokenDecode(string), так как он постоянно возвращает ноль, вызывая сбой программы.

Из того, что я понял, этот метод преобразует строку в ее By64-массив массива base64. К сожалению, первоначального разработчика кода больше нет с нами, и, похоже, не многие в моем офисе знакомы с кодом.

public string DecodeUrlData(string urlData)
{
    string lsReturnVal = string.Empty;
    byte[] decodedrtfBytes = HttpServerUtility.UrlTokenDecode(urlData);

    lsReturnVal = System.Text.ASCIIEncoding.ASCII.GetString(decodedrtfBytes);
    return lsReturnVal;
}

Это код, который был написан, и urlData имеет следующее значение:

urlData = "pdfSignature template testing."

(Также следует знать, что urlData может иметь либо значение "string", либо строку rtfformatted)

Но в итоге получается, что при выполнении строки HttpServerUtility.UrlTokenDecode(urlData) байтовый массив становится нулевым (что вызывает исключение в следующей строке).

Есть ли другой способ преобразовать строку в base64, который будет работать, или почему он продолжает выдавать нулевое значение?

1 Ответ

4 голосов
/ 29 июня 2011

Согласно документации HttpServerUtility.UrlTokenDecode параметр input должен представлять собой маркер Url , предварительно закодированный с помощью UrlTokenEncode.

Цитата:

Метод UrlTokenDecode преобразует Маркер строки URL, который кодирует двоичный данные в виде 64 цифр, чтобы его эквивалентное представление массива байтов. Используйте метод UrlTokenDecode для расшифровать токены, переданные по URL и закодированы с помощью UrlTokenEncode.

...