2013-01-20 150 views
1

我想序列化和反序列化事件验证存储。我已经使用MSDN上的代码对viewstate执行相同的操作。我似乎无法从EventValidation对象中获取数据。反序列化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语句无法在类型‘对象’的变量操作,因为‘对象’不包含一个公共定义‘的GetEnumerator’”

我无法在MSDN上找到任何有关System.Web.UI.EventValidationStore。

我很抱歉,如果这是一个令人困惑的帖子,我只是不知道该怎么提问。

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

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

回答

0

__EVENTVALIDATION字段结构是ASP.NET的内部结构,可能会更改。尝试反序列化/序列化它不受支持。与之交互的支持方式是通过页面的ValidateEventRegisterForEventValidation API。

你究竟想完成什么?也许我们可以找到支持的方式。