我正在尝试序列化和反序列化事件验证商店。我已经使用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字符串。
答案 0 :(得分:0)
__EVENTVALIDATION
字段结构是ASP.NET内部的,可能会发生变化。尝试反序列化/序列化它是不受支持的。支持的与其交互的方式是通过Page的ValidateEvent
和RegisterForEventValidation
API。
你到底想要完成什么?也许我们可以找到一种支持的方式。