Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Base-64字符数组的长度无效_Asp.net - Fatal编程技术网

Asp.net Base-64字符数组的长度无效

Asp.net Base-64字符数组的长度无效,asp.net,Asp.net,我从我们的一个网页收到这个错误:“Base-64字符数组的长度无效” 这是我的异常中的堆栈跟踪: at System.Convert.FromBase64String(String s) at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserial

我从我们的一个网页收到这个错误:“Base-64字符数组的长度无效”

这是我的异常中的堆栈跟踪:

at System.Convert.FromBase64String(String s)     
at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)     
at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState)     
at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState)     
at System.Web.UI.SessionPageStatePersister.Load()
代码隐藏.cs:

protected override PageStatePersister PageStatePersister
{
    get
    {
        return new SessionPageStatePersister(Page);
    }
}

什么会导致此错误?

我在解密过程中也遇到了同样的问题,当加密字符串中有空格时,有时会出现此问题,我所做的是用空格替换空格+

cryptedString = cryptedString.Replace(" ", "+");

这可能也是您的问题。

如果Base64字符串中有空格,则会引发此错误。我看到过这种错误编码的Base64字符串从SagePay(以前是Protx)传递过来

它的原因是Request.QueryString[]对字符串进行解码,并将+(base64字符串中的有效字符)视为一个空格(这与urlencoding将+视为一个空格一样正确)

我在以下文章中对此进行了描述:


正在处理的确切字符串是什么?我不是这方面的作者。此外,我正在尝试解决此问题。服务器控件以页面形式传递。因此,这是什么原因造成的。或者是否有任何方法可以通过示例代码进行复制,因此这将有助于我修复此错误。您应该能够附加调试器并查看该字符串中的内容g变量。