SAML响应字符串包含插入符号^符号,它是无效的base64字符串

时间:2017-12-08 15:20:16

标签: curl encoding saml saml-2.0 url-encoding

我使用下面的代码来获取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响应字符串中被^包裹。 对此的任何帮助将不胜感激。

0 个答案:

没有答案