我使用下面的代码来获取saml断言
if (rawSamlData.Contains("%"))
{
rawSamlData = System.Net.WebUtility.UrlDecode(rawSamlData);
}
// read the base64 encoded bytes
byte[] samlData = Convert.FromBase64String(rawSamlData);
// read back into a UTF string
string samlAssertion = Encoding.UTF8.GetString(samlData);
某些客户端发送包含无效base64字符的saml响应,特别是%由^包裹,因此%0D为^%^ 0D,%0A为^%^ 0A。 当我尝试Convert.FromBase64String时,它会抛出
The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters
我正在努力理解为什么%在saml响应字符串中被^包裹。 对此的任何帮助将不胜感激。