РЕДАКТИРОВАТЬ: оригинальное предложение, которое, очевидно, не работает
Я уверен, что причина в том, что он считает, что это параметр запроса с именем Key. Не могли бы вы сделать это параметром, причем эта часть является значением, например,
www.example.com/Find?Route=Key=
Я ожидаю, что будет работать (так как парсер будет искать &
для запуска следующего параметра), но возможно, что он все еще запутает.
Предложение, которое, как я считаю, сработает
В качестве альтернативы, замените «=» в закодированном значении base64 на что-то другое при выходе и повторно замените его на обратном пути, если вы понимаете, о чем я. В основном используйте другой dec64abet base64.
Альтернативное предложение, которое должно работать
Перед добавлением base64 к URL:
private static readonly char[] Base64Padding = new char[] { '=' };
...
base64 = base64.TrimEnd(Base64Padding);
Затем перед вызовом Convert.FromBase64String()
(что, как я полагаю, вы делаете) для входящего запроса:
// Round up to a multiple of 4 characters.
int paddingLength = (4 - (base64.Length % 4)) % 4;
base64 = base64.PadRight(base64.Length + paddingLength, '=');