国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

Asp.net 2.0 ViewState原理_.Net教程

2024-07-10 12:49:54
字體:
來源:轉載
供稿:網友

推薦:[JS.IntelliSense]VS2007(Orcas) So Cool
我很早以前就想找一個能夠像VS中C#一樣可以有很強的IntelliSense開發工具來寫腳本JS,但是到現在還沒有能夠真正找到一理想的工具。很早以前聽說VS2007能夠給我帶來一點震撼,但是又有人說那只是

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里放的是什么,我畫了一幅圖,詳細說明了一下


分享:徹底放棄IIS讓Apache也支持ASP.NET
Apache是目前廣泛使用的一種網絡服務器程序,不僅在UNIX/Linux平臺上被大量使用,而且在Windows平臺上也有許多站點放棄了IIS而轉向Apache。.NET是微軟推出的功能強大的開發技術,其目標就是與Ja

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高要市| 抚顺县| 青河县| 大竹县| 江孜县| 乐至县| 武陟县| 田东县| 嵊泗县| 黎城县| 岑溪市| 邯郸市| 富源县| 钟祥市| 海原县| 宁都县| 和林格尔县| 潮安县| 方正县| 灌南县| 射洪县| 白沙| 凤城市| 富裕县| 鄂托克前旗| 岱山县| 栾城县| 普格县| 舟山市| 花莲市| 茶陵县| 民勤县| 肥城市| 益阳市| 胶州市| 镇原县| 吴桥县| 东台市| 静海县| 江源县| 宽城|