反序列化EventValidation对象

时间:2013-01-20 02:12:32

标签: c# asp.net serialization viewstate eventvalidation

我正在尝试序列化和反序列化事件验证商店。我已经使用MSDN上的代码对viewstate执行相同的操作。我似乎无法从EventValidation对象中获取数据。

System.Web.UI.LosFormatter los = new System.Web.UI.LosFormatter();
var t = los.Deserialize("/wEdAAXD48AAvF6Ff7P5UOQbT3VqkrDKlMWdnNXfGOHHYL4xn7VF+rYDddmo2pWyOYlEzR9ytSa0+vS8Kw5xkFTTwf/ogY5mU3PIFIVTnINRkldVDi8fjE6FJuo5OYrccfM1phFxAalSeL3MjHSQK44wYPDs")
HashSet<object> h = new HashSet<object>();
foreach (object d in t)
{
   DoSomething()
}

System.Web.UI.EventValidationStore是对象类型(?)

我曾尝试使用哈希集,列表等。我是新手,这是我所知道的怎么做,但很想学习它。

我得到的错误是:“foreach语句不能对'object'类型的变量进行操作,因为'object'不包含'GetEnumerator'的公共定义”

我在MSDN上找不到关于System.Web.UI.EventValidationStore的任何内容。

如果这是一个令人困惑的帖子我很抱歉,我只是不确定如何问它。

更新:我成功地反序列化了一个EventValidation base64字符串,但其他人证明是难以捉摸的。代码段中的那个似乎不起作用。

要点: 我需要能够在.NET中解码/反序列化和编码/序列化eventvalidation base64字符串。

1 个答案:

答案 0 :(得分:0)

__EVENTVALIDATION字段结构是ASP.NET内部的,可能会发生变化。尝试反序列化/序列化它是不受支持的。支持的与其交互的方式是通过Page的ValidateEventRegisterForEventValidation API。

你到底想要完成什么?也许我们可以找到一种支持的方式。