轻量级可序列化和解析友好的数据结构,用于存储服务器控件属性

时间:2011-09-16 04:23:04

标签: c# asp.net data-structures controls viewstate

我正在使用asp.net服务器控件,并且不希望将服务器控件属性存储在dreaded和hogging viewstate中。所以我需要在c#中使用一些数据结构来存储这些属性并将它们序列化为客户端隐藏状态。有人做了一项研究,可以给我最好的性能,删除多余的密钥,并提供简单的序列化/反序列化过程,也提供了被篡改的安全性。对于想要这样做的人来说,SessionState不是一个很好的选择

2 个答案:

答案 0 :(得分:2)

您说您希望将数据存储在客户端隐藏状态。 ViewState就是这样做的:我认为微软将它设计得很紧凑。是什么让你觉得你可以做得更好?

恕我直言,没有银弹,如果你想存储国家客户端,坚持使用ViewState。

答案 1 :(得分:0)

您可以定义一个简单的类,将实例序列化为二进制文件并对该二进制文件执行Base64编码并在隐藏字段中使用它。如果你想防止篡改,我建议包括另一个隐藏字段,其中包含由序列化数据构建的散列和一个可以保留在服务器端的密钥。然后,您可以在表单帖子上再次构造相同的密钥,并与您在隐藏字段中收到的密钥进行比较。