星期五, 11月 04, 2011

ASP撞鬼事件: Validation of viewstate MAC failed

HKT將陸陸續續,發表一些架站心得。

第一篇:『ASP撞鬼事件: Validation of viewstate MAC failed』

鬼影照片:


這可堪稱相當離奇的ASP事件之一,若加上本身英文"未佳",

看到上方這圖,真的是挫咧等啊!!!

這問題怪得離奇,點在那呢???

花妹問:
奇怪,我在Local (本地),驗證都沒問題啊????
為什麼放到遠端伺服器,就出現這一頁???
並且若無按鈕的網頁,就沒問題,一旦有按鈕的網頁,點沒三下就跳出這錯誤訊息。
我確定Local端驗證100次都沒問題。




呵呵~這是大家常見的發問方式,我這邊驗證沒問題啊???,可是到...就...。
沒錯!這就是所謂的撞鬼事件,KT將會幫大家追追追~


KT還是要強調的是,既然是伺服器網站,還是要放到伺服器上去測試,
Local 端模擬驗證出來的通常都是假象。
與真實有一段非常遙遠的距離,這也是通常是學校沒教的事,
可能學了很多年的相關科目,伺服器架站與管理,資料庫,ASP,PHP..等。


若沒真的去架一個伺服器網站,是都不會看到這些現象,會以為架站完全沒問題,
但真的去架站時,冒出來的離奇弔詭的事蹟,寫一本全套共百集的ASP撞鬼事件,
還真的不是件難事。


回到正題:




若你是剛好"大限時間"到要繳報告、論文的答案在這裡,


貼code就會動:


到這個網站 Generate ASP.NET Machine Keys
按一下Generate Keys,產生出來的code,貼在web.config的檔案裡即可,
解決這個撞鬼事件。夠簡單吧!!!




相對若你是泡著茶喝咖啡且翹著二郎腿聽 KT 在拉賽的,可以仔細慢慢聽我道來:


其實 KT也沒有幾把刷子,只是拾人牙慧罷了!!!
底下說明原文來自codeproject : ASP.NET machineKey Generator

><"""有時真不知該不該翻譯原文,如果讀者都是英文高手,哈哈KT真的只是賣醜的而已,

就怕讀者跟KT英文一樣是軟腳的,看到英文網頁,先Skip(跳過)在說,哈哈哈~

為了普羅大眾,KT還是翻譯一下,當然不是一字一字翻,><""",會有KT Style。

Introduction

Whenever you make use of ViewState, Session, Forms authentication, or other encrypted and/or secured values, ASP.NET uses a set of keys to do the encryption and decryption. Normally, these keys are hidden and automatically generated by ASP.NET every time your application recycles, but there are times when you want to specify a particular, persistent key. This article will explain why hard-coded machineKeys are good, and how to generate random ones for ASP.NET 1.1 or 2.0.

(HKT:
這篇寫的真不賴,架式十足,先來個 Introduction(介紹),開宗明義說明問題的原委,先見林後見樹,
好文就該如此,先按一下「讚!!!」。

會產生"Viewstate MAC 的驗證失敗"主要是因為當你使用ViewState,Session,Forms authentication(認證)時會有 encryption(加密) 和 decryption(解密)的機制,此時會產生一組Key,這組Key會在特定時間被回收,
若前後搭不上,驗正將會失敗,這也就是Viewstate MAC 的驗證失敗的原因。
貼上原文關鍵字,是KT覺得你一定要學會的字)



所以你可以問咕咕哥:ASP.NET machineKey Generator
就有一大推的machineKey 產生器,可以用。
===============================================================
ASP撞鬼事件: Validation of viewstate MAC failed 在這宣布終結

0 意見 :

張貼留言

回覆意見時,麻煩輸入一下暱稱
(隨便取個名字也好~ ^_^)
好讓我方便回覆您的問題,
選擇「名稱/網址」輸入您的暱稱,
麻煩一下,謝謝大家。

關閉廣告 [X]