好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識(shí)庫 > asp.net中ViewState的用法詳解

asp.net中ViewState的用法詳解

熱門標(biāo)簽:海東防封電銷卡 辦公用地圖標(biāo)注網(wǎng)點(diǎn)怎么操作 云南外呼系統(tǒng)代理 聊城智能電銷機(jī)器人電話 安陸市地圖標(biāo)注app 寧德防封版電銷卡 上海市三維地圖標(biāo)注 西寧電銷外呼系統(tǒng)公司 南昌自動(dòng)外呼系統(tǒng)線路

在web窗體控件設(shè)置為runat = "server",這個(gè)控件會(huì)被附加一個(gè)隱藏的屬性_ViewState,_ViewState存放了所有控件在ViewState中的狀態(tài)值。ViewState是一個(gè)名稱/值的對(duì)象集合。當(dāng)請(qǐng)求某個(gè)頁面時(shí),ASP.NET會(huì)把所有控件的狀態(tài)序列化成一個(gè)字符串,然后作為窗體的隱藏屬性送到客戶端,當(dāng)客戶端吧頁面回傳時(shí),ASP.NET分析回傳的窗體屬性,并賦給控件對(duì)應(yīng)的值。

當(dāng)我們?cè)趯懸粋€(gè)asp.net表單時(shí), 一旦標(biāo)明了 form runat=server ,那么,asp.net就會(huì)自動(dòng)在輸出時(shí)給頁面添加一個(gè)隱藏域

input type="hidden" name="__VIEWSTATE" value="">

那么,有了這個(gè)隱藏域,頁面里其他所有的控件的狀態(tài),包括頁面本身的一些狀態(tài)都會(huì)保存到這個(gè)控件值里面. 每次頁面提交時(shí)一起提交到后臺(tái),asp.net對(duì)其中的值進(jìn)行解碼,然后輸出時(shí)再根據(jù)這個(gè)值來恢復(fù)各個(gè)控件的狀態(tài). 我們?cè)倏催@個(gè)控件的value值,它可能類似如下的形式:Oz4+O2w8aTwxPjs+O2w8.... 很多人會(huì)認(rèn)為這是加密的信息,其實(shí)不是, ms僅僅是給各個(gè)控件和頁面的狀態(tài)存入適當(dāng)?shù)膶?duì)象里面,然后把該對(duì)象序列化, 最后再做一次base64編碼,直接賦值給viewstate控件.

一、ViewState的原理

1.瀏覽器請(qǐng)求Default.aspx頁面

2.在服務(wù)器端 發(fā)現(xiàn)創(chuàng)建的ViewState 這個(gè)時(shí)候 會(huì)自動(dòng)創(chuàng)建一個(gè)名字叫做__VIEWSTATE(雙下滑線 全部是大寫)的隱藏域 其隱藏域的值經(jīng)過base64加密以后返回到瀏覽器端這一加密過程在頁面生命周期的SaveState事件中的SaveAllState方法中完成

3.當(dāng)瀏覽器提交表單的時(shí)候 將__VIEWSTATE的隱藏域也一起提交到服務(wù)端 這個(gè)時(shí)候 頁面生命周期的ReadState事件的ReadAllState方法會(huì)將加密后的值反base64解密 最后將值賦值給名字叫做name的ViewState

4.最后來操作ViewState中的值

二、ViewState的用法:

1.定義ViewState屬性

public int PageCount{
get{return (int)ViewState["PageCount"];}
set{ViewState["PageCount"]=value;}
}

2.使用ViewState的條件

如果要使用ViewState,則在ASPX頁面中必須要有一個(gè)服務(wù)器端窗體標(biāo)記(form runat = "server">)。窗體字段是必須的,這樣包含ViewState信息的隱藏字段才能被傳回服務(wù)器。而且,該窗體還必須是服務(wù)器端的窗體,這樣在服務(wù)器上執(zhí)行該頁面時(shí),ASP.net頁面框架才能添加隱藏字段。

page的EnableViewState 屬性值為true
控件的EnableViewState 屬性值為 true

3.ViewState需要注意的地方

a. 當(dāng)存在頁面回傳時(shí),不需要維持控件的值就要把 ViewState 禁止。
b. ViewState的索引是大小寫敏感的。
c. ViewState不是跨頁面的。
d. 為了能保存在 ViewState中,對(duì)象必須是可流化或者定義了 TypeConverter。
e. 控件 TextBox 的 TextMode 屬性設(shè)置為 Password時(shí),它的狀態(tài)將不會(huì)被保存在 ViewState 中,這應(yīng)該是出于安全性的考慮。
f. 在頁面沒有回傳或重定向或在回傳中轉(zhuǎn)到(transfer)其他頁面時(shí)不要使用 ViewState。
g. 在動(dòng)態(tài)建立控件時(shí)要小心它的 ViewState。
h. 當(dāng)禁止一個(gè)程序的 ViewState 時(shí),這個(gè)程序的所有頁面的 ViewState 也被禁止了。
i. 只有當(dāng)頁面回傳自身時(shí)ViewState 才是持續(xù)的。

4.設(shè)置ViewState

ViewState可以在控件,頁,程序,全局配置中設(shè)置。缺省情況下 EnableViewState 為 true 。如果要禁止所有頁面 ViewState 功能,可以在程序配置中把 EnableViewState 設(shè)為 false 。

三、產(chǎn)生的 __VIEWSTATE如圖

使用ViewStateDecoder2(ViewState查看器)來看一下值

所以ViewState在安全性上面還是比較差,建議不要存放比較機(jī)密和敏感的信息,盡管ViewState可以加密,但是由于ViewState要保存在客戶端,天生就有安全性的隱患。

四、viewstate與session的對(duì)比

(1) session值是保存在服務(wù)器內(nèi)存上,那么,可以肯定,大量的使用session將導(dǎo)致服務(wù)器負(fù)擔(dān)加重. 而viewstate由于只是將數(shù)據(jù)存入到頁面隱藏控件里,不再占用服務(wù)器資源,因此, 我們可以將一些需要服務(wù)器"記住"的變量和對(duì)象保存到viewstate里面. 而sesson則只應(yīng)該應(yīng)用在需要跨頁面且與每個(gè)訪問用戶相關(guān)的變量和對(duì)象存儲(chǔ)上.

(2) session在默認(rèn)情況下20分鐘就過期,而viewstate則永遠(yuǎn)不會(huì)過期.

但viewstate并不是能存儲(chǔ)所有的.net類型數(shù)據(jù),它僅僅支持String、Integer、Boolean、Array、ArrayList、Hashtable 以及自定義的一些類型.

任何事物都有兩面性, 使用viewstate會(huì)增加頁面html的輸出量,占用更都的帶寬,這一點(diǎn)是需要我們慎重考慮的. 另外, 由于所有的viewstate都是存儲(chǔ)在一個(gè)隱藏域里面,用戶可以很容易的通過查看源碼來看到這個(gè)經(jīng)過base64編碼的值.然后再經(jīng)過轉(zhuǎn)換就可以獲取你存儲(chǔ)其中的對(duì)象和變量值。

您可能感興趣的文章:
  • asp.net 生成靜態(tài)時(shí)的過濾viewstate的實(shí)現(xiàn)方法
  • asp.net 去除viewstate
  • asp.net 禁用viewstate在web.config里
  • asp.net viewstate 回發(fā)機(jī)制
  • asp.net生成靜態(tài)后冗余代碼,去掉viewstate生成的代碼
  • 使用正則Regex來移除網(wǎng)頁的EnableViewState實(shí)現(xiàn)思路及代碼
  • 狀態(tài)保存機(jī)制之ViewState概述及應(yīng)用
  • 禁止ViewState的3種解決方法
  • viewstate和datatable動(dòng)態(tài)錄入數(shù)據(jù)示例
  • ASP.NET中控件的EnableViewState屬性及徹底禁用

標(biāo)簽:青海 崇左 洛陽 汕尾 南寧 衢州 贛州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp.net中ViewState的用法詳解》,本文關(guān)鍵詞  asp.net,中,ViewState,的,用法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《asp.net中ViewState的用法詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于asp.net中ViewState的用法詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 无码人妻AV一区二区三区免费视频| 快穿之小受夺精记h | 狠狠色丁香久久综合网| 大伊香蕉精品一区在线| k频道网址国产精品入口| 欧美三级做爰在线观看| 春闺梦小说全文阅读| 青娱乐欧美视频| 乖一点就亲你[电竞]| 91精品免费在线观看| 777午夜精品久久AV| 男女男精品视频免费观看| 午夜黄色剧场| 亚洲AV秘?无码一区春谷美雨| 成人二人看AA片影院| 诱惑动图| 高清色黄毛片一级毛片| 亚洲se主站| 欧美精品第9页| 日韩成人无码电影一区二区三区| 8050午夜二级毛片免费| 极光安卓apk| 痴妄| 少妇被?到高潮喷出白浆av| 果冻传媒AV精品国产网站| 舒服寂寞难耐bd在线播放| 挺进女下属后菊| 我觉醒了胬肉系统| 40岁丰满特级A片| 国产精品美女久久久久浪潮AV| 精品免费国偷自产在线| 娇小老少配xxxxx性视频| 黑人女人猛交一二三区A片| 91成人精品久久久久久久| 夜色资源站国产www在线视频| WWW免费视频在线观看播放| 名妓在线播放无码视频| 亚洲一区二区三区二区| 啊轻点灬大ji巴太粗太高h| 日本韩国理论片| chinesesxx东北女人高清|