麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

ASP.NET視圖狀態(tài)驗證MAC失敗 解決辦法

2019-11-17 04:08:02
字體:
供稿:網(wǎng)友
asp.net視圖狀態(tài)驗證MAC失敗 解決辦法

  

    驗證視圖狀態(tài) MAC 失敗。如果此應(yīng)用程序由網(wǎng)絡(luò)場或群集承載,請確保 <machineKey> 配置指定了相同的 validationKey 和驗證算法。不能在群集中使用 AutoGenerate。
      說明: 執(zhí)行當(dāng)前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯誤以及代碼中導(dǎo)致錯誤的出處的詳細(xì)信息。

      異常詳細(xì)信息: System.Web.HttpException: 驗證視圖狀態(tài) MAC 失敗。如果此應(yīng)用程序由網(wǎng)絡(luò)場或群集承載,請確保 <machineKey> 配置指定了相同的 validationKey 和驗證算法。不能在群集中使用 AutoGenerate。  

分析:

分析后找到了問題的根源。首先,文章中提到,如果用GridView,并且指定了DataKeyNames屬性,則出于安全的理由(因為 DataKeyNames指定的字段代表數(shù)據(jù)的主鍵,且該主鍵值需要保存在視圖狀態(tài)中發(fā)送到客戶端,用戶如果篡改主鍵值,會導(dǎo)致安全問題),GridView會要求加密視圖狀態(tài)。為此會自動在頁面表單</forms>之前添加一個<input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" /> 。

然而,Atlas的UpdatePanel要求放置在<form></form>內(nèi)部,也就是</form>之前。這就意味著添加的隱藏input控件沒有被放置在UpdatePanel內(nèi),而是放置在UpdatePanel和</form>之間。

當(dāng)UpdatePanel更新時,UpdatePanel內(nèi)部的控件被提交到服務(wù)器進(jìn)行處理(Patrial Rendering),而整個頁面并沒有被提交。也就是說隱藏的input控件沒有隨著一起提交。因此服務(wù)器并不知道提交的ViewState被加密了,從而導(dǎo)致MAC驗證錯誤。

      解決方法有二,僅供參考:

1.可以在當(dāng)前頁面的<page ...>里加兩個屬性:
enableEventValidation = " false " viewStateEncryptionMode = " Never "


2.當(dāng)然還可以在web.config里加入:(<system.web>之間)
< pages enableEventValidation = " false " viewStateEncryptionMode = " Never " /> 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产1区2区在线观看 | 在线播放av网址 | 12av电影 | 国产91久久久 | 91精品视频网址 | 久久国产午夜 | 91精品国产一区二区在线观看 | 久久精品一二三区白丝高潮 | 国产乱淫av | 国产羞羞视频在线观看 | 亚洲一区二区成人 | 蜜桃视频网站www | 亚州精品天堂中文字幕 | 2021免费日韩视频网 | 成人毛片在线 | 久久久一区二区三区视频 | 哪里可以看免费的av | www中文在线 | 亚洲第五色综合网 | 欧美日韩在线视频一区 | 一级大片一级一大片 | 日韩a毛片免费观看 | 一本色道久久综合狠狠躁篇适合什么人看 | 毛片在线免费播放 | 斗罗破苍穹在线观看免费完整观看 | 深夜影院一级毛片 | 一级成人黄色片 | 成人国产精品色哟哟 | 久久精品2019中文字幕 | 久久久久久中文字幕 | 精品一区二区久久久久久久网精 | 精品中文字幕视频 | 黄色的视频免费观看 | 久久精品国产99久久久古代 | 亚洲性生活视频 | 一区二区久久精品66国产精品 | 成人在线视频免费播放 | 极品大长腿啪啪高潮露脸 | 国产在线一级视频 | 亚洲精品久久久久久久久久 | 一级一级一级毛片 |