2011-02-16 45 views
0

我從我們的一個網頁收到此錯誤:「Base-64字符數組的無效長度」。Base-64字符數組的長度無效

這是從我的異常堆棧跟蹤:

的.cs背後
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() 

代碼:

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

什麼會導致這個錯誤?

+0

什麼正在處理的確切字符串 – sharptooth 2011-02-16 07:00:17

回答

0

我解密過程中有同樣的問題,當在一個加密的字符串空間中的問題有時會發生,我所做的是用+

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

替代空間這可能是您的問題,以及。

2

如果Base64字符串中有空格,則會引發此錯誤。我已經看到這種不正確編碼的Base64字符串從SagePay傳遞(曾經是Protx)。

其因的Request.QueryString []解碼串並設爲+(有效的字符在一個base64字符串)作爲一個空間(這是作爲URL編碼對待+作爲一個空間正確。

我已經寫這在下面的文章:。

相關問題