请教高手ViewState的反序列化 <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="............"请问,如果拿到一个网站页面上的那段value值,有方法可以把它反序列化成ViewState对象吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ViewState的默认编码是Base64,找下Base64的解码代码就可以了。如果是要查看ViewState的内容,这里有一个查看的工具的介绍:http://www.cnblogs.com/neuhawk/archive/2007/06/12/781071.html byte[] bs = Convert.FromBase64String("...");string str = System.Text.Encoding.Utf8.GetString(bs); value保存了控件状态和值,采用Base64编码方式保存,可下载ViewState解码器ViewState Decoder 或void LoadViewState (object state)protected override object LoadPageStateFromPersistenceMedium(){ string viewstate = Request.Form["__"]; byte[] data = Convert.FromBase64String(viewstate); string str = Convert.ToBase64String(data); LosFormatter formatter = new LosFormatter(); return formatter.Deserialize(str);}参考 请教 wuyq11大哥, byte[] data = Convert.FromBase64String(viewstate); string str = Convert.ToBase64String(data); 这两句是必须的吗? 为什么从Base64还是转到Base64呢? 这个问题你可以参考一下这个论坛顶部那本 庖丁解牛的书,那本书里对这个有很详细的解释。肯定是可以反序列话的,要不怎么获取ViewState的值。 ViewState看上去是StateBag类型,我取到值后反序列化,再转成StateBag类型,可为什么就不能用索引取值呢?代码如下: ViewState["Test"] = "xxxx";然后取到,转base64,反序列化后: object o = formatter.Deserialize(value); StateBag viewState = o as StateBag;再用 viewState["Test"] 时,viewState["Test"] = null其实 viewState这个对象不为空, 但是好像不能再通过["Test"]取到值 新手学习,请问怎么写一个判断是否有数据? js + .Net 图片切割系统 asp.net运行出现HTTP500错误 fckeditor编辑器在win2003服务器中,图片上传,报错xml request error:Not Found(404) 谁有空间,借我用一天,有点数据要从单位导到家里,今天没带U盘 想让按钮控件可以转到某个超连接,并可以订制目标窗口 这个问题如何处理? 圣诞散分!! 模板列上可不可以设置超链接? 网页数据怎么采集? new个实体类和 直接用方法的区别 关于repeater的问题,小弟初学,望多关照..
http://www.cnblogs.com/neuhawk/archive/2007/06/12/781071.html
string str = System.Text.Encoding.Utf8.GetString(bs);
可下载ViewState解码器ViewState Decoder
或void LoadViewState (object state)protected override object LoadPageStateFromPersistenceMedium()
{
string viewstate = Request.Form["__"];
byte[] data = Convert.FromBase64String(viewstate);
string str = Convert.ToBase64String(data);
LosFormatter formatter = new LosFormatter();
return formatter.Deserialize(str);
}参考
string str = Convert.ToBase64String(data); 这两句是必须的吗? 为什么从Base64还是转到Base64呢?
StateBag viewState = o as StateBag;再用 viewState["Test"] 时,viewState["Test"] = null
其实 viewState这个对象不为空, 但是好像不能再通过["Test"]取到值