欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【Asp.net 2.0 ViewState原理】,下面是详细的分享!
Asp.net 2.0 ViewState原理
ViewState相信大家都会使用,可ViewState到底是什么,又有多少人知道呢?
StateBag类这个就不用多说啦吧
在Asp.net 2.0 里,用到StateBag有三处
1 Control._viewState 这个就是大家使用的ViewState
2 WebControl.attrState这个是存放Attribute的
3 Style.statebag是存放样式的
.......
Page生命周期内SaveAllState时
需要先生成个Piar类,在调用this.SavePageStateToPersistenceMedium(pair1);时,将其序列化
注意:Asp.net2.0只实现了HiddenFieldPageStatePersister,用户可以从重写,或者使用ControlAdapter提供其它形式的进理机制
HiddenFieldPageStatePersister.Save时会过pair1进行序列化
序列化时,.net提供了三种方式
1使用密钥
2.使用Mac
3不使用
//先序列化
this.Serialize(outputStream, stateGraph);
outputStream.SetLength(outputStream.Position);
byte[] buf=outputStream.GetBuffer();
int length=(int)outputStream.Length;
//判断当前Page.RequiresViewStateEncryptionInternal属性返回值是不是需要加密
//如果未调用Page.RegisterRequiresViewStateEncryption,则默认为false
//如果界面设置了RegisterRequiresViewStateEncryption和EnableViewStateMac,加密优先于Mac
if ((this._page !=null) && this._page.RequiresViewStateEncryptionInternal) //加密
{
buf=MachineKeySection.EncryptOrDecryptData(true, buf, this.GetMacKeyModifier(), 0, length);
length=buf.Length;
}
else if (((this._page !=null) && this._page.EnableViewStateMac) || (this._macKeyBytes !=null))//设置可以使用Mac
{
buf=MachineKeySection.GetEncodedData(buf, this.GetMacKeyModifier(), 0, ref length);
}
text=Convert.ToBase64String(buf, 0, length); // null of either
谈到这,很多人要问pair1里放的是什么,我画了一幅图,详细说明了一下

以上所分享的是关于Asp.net 2.0 ViewState原理,下面是编辑为你推荐的有价值的用户互动:
相关问题:asp.net ViewState 用法?
答:通常在页面 先定义 protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { ViewState["自定义名称用于区分不用的"] =null; // 定义的开始. } } 其他地方,如果要存 . 直接 赋值.. ViewState["1"] = "我的值"; // string 要... >>详细
相关问题:asp.net中ViewState用法
答:ViewState["自定义名称用于区分不用的"] =null; // 声明 赋值.. ViewState["1"] = "我的值"; // string 取 . if(ViewState["1"] !=null) { string valuess= ViewState["1"].ToString(); int inn = Convert.toInt32(ViewState["1"]);// ..... } >>详细
相关问题:请问asp.net中ViewState和session的区别?
答:ViewState只存在当前页面,如果你跳转到其他页面ViewState就会清空。 Session保存到你的整个项目网站中,除非你清空Session或者关闭浏览器为止方可清空Session里面的值。 >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
