2010-04-05 71 views
2

我們有一個cookie管理庫,用於寫入包含一些敏感信息的cookie,並使用Rijndael加密。 Cookie在單元測試中加密和解密(使用Moq),對於MVC Web應用程序正常工作,但是當從ASP.net 2.0網站調用時,cookie不能被解密。 「填充無效,無法刪除。」ASP 2.0 cookie上的填充無效,MVC看起來不錯

我們確信cookie值是有效的,因爲我們在單元測試中用隨機數據測試了10,000次。 ASP.NET 2.0在讀取和寫入導致問題的cookie時會做些什麼。

必須有一個問題。有什麼建議麼?

回答

0

將數據存儲在cookie中之前對數據進行十六進制編碼,因爲十六進制字符對cookie值有效。 (Base64目前並不安全,但你可以用_-。來代替+ = /字符)。另外請注意,cookies有最大長度,但我忘記了這個限制是不適用的。

如果您嘗試序列化較大的值,請考慮將其存儲在Session中,以便用戶根本無法訪問它。這樣做的缺點是它使用服務器上的內存,如果你有一個Web場,你必須在機器間保持同步。

+0

轉移到十六進制似乎已經解決了這個問題,雖然我不清楚爲什麼asp.net mvc可以使用cookie,但webforms不是。偶爾出現的隨機問題很難調試! 謝謝! – 2010-04-06 13:42:18