小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

使用代碼解析ViewSate的Base64值

 kinglou 2008-08-06

使用代碼解析ViewSate的Base64值?

ViewState的值的編碼是Base64,默認(rèn)狀況下,是沒有加密的,很容易讀出。
ViewState的值可以加密,首先,確保Page的EnableViewStatMac=true,然后在Machine.Config中配置machineKey。
默認(rèn)Machine.Config中的machineKey:
<!--  validation="[SHA1|MD5|3DES]" -->
  
<machineKey
            
validationKey="AutoGenerate,IsolateApps"
            decryptionKey
="AutoGenerate,IsolateApps"
            validation
="SHA1" />
可以修改machineKey來使用某種加密方式,注意:加密由Machine Layer完成,要消耗系統(tǒng)資源。
本人關(guān)于加密ViewState沒有測試。

通過使用瀏覽器,可以獲取ViewState的隱藏內(nèi)容,使用下面的代碼,可以解析:
    private  string Base2String(string message)
        
{
            
byte[] by=System.Convert.FromBase64String(message);

            
string dest=System.Text.Encoding.ASCII.GetString(by);
            
return dest;

        }

//如果ViewState的值為"dDw5NDA0MTAzOTY7dDxwPGw8cGFzczs+O2w8RmlzaDs+Pjs7PjtsPF9jdGwwO2NoZWNrO19jdGwxO19jdGwyO19jdGwzO2NiOz4+";
string source="dDw5NDA0MTAzOTY7dDxwPGw8cGFzczs+O2w8RmlzaDs+Pjs7PjtsPF9jdGwwO2NoZWNrO19jdGwxO19jdGwyO19jdGwzO2NiOz4+";
Response.Write(Base2String(source));
可以獲得:t<940410396;t ;l>;;>;l<_ctl0;check;_ctl1;_ctl2;_ctl3;cb;>>
其中,cb是指動態(tài)生成的CheckBox,共動態(tài)生成5個CheckBox,check是動態(tài)生成的第2個CheckBox的Id,其他的沒有指定Id。

如果在Page的后臺代碼中完成上面的操作,需要重寫SavePageStateToPersistenceMedium():
protected override void SavePageStateToPersistenceMedium(object viewState) 
        
{
            
// 調(diào)用基類的方法,完成基本操作
            base.SavePageStateToPersistenceMedium(viewState);
            
// 獲取ViewState的Base64值
            LosFormatter format = new LosFormatter();
            StringWriter writer 
= new StringWriter();
            format.Serialize(writer, viewState);
            
string vsRaw = writer.ToString();
            Response.Write(
"ViewState Raw: " + Server.HtmlEncode(vsRaw));
            
// 解析內(nèi)容
            byte[] buffer = Convert.FromBase64String(vsRaw);
            
string vsText = Encoding.ASCII.GetString(buffer);
            Response.Write(
"ViewState Text: " + Server.HtmlEncode(vsText));
        }
通過獲取ViewState的值,可以有助于理解ViewState的目的和作用,畢竟ViewState中的StateBag,可以存儲頁面級的變量,通過PostBack發(fā)送,是非常有用的。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多