如何解码 ASP.NET EventValidation 和 ViewState?
5 回答
我最近回答了一个类似的问题,Getting values from viewstate using JQuery? .
基本上,默认情况下ViewState
只是 Base64 编码的,所以只要管理员没有配置站点来加密它,你就可以对其进行解码。引用我之前的回答:
如果您正在为自己的消费编写控件并且您只需要从 读取
ViewState
,您可以这样做,但我不会推荐它,除非您找到一个调试良好的库来为您解析它。格式有点复杂(有关更多详细信息,请参阅 ViewState:所有您想知道的)。
该链接对ViewState
.
至于事件验证,我不确定它是 Base64 编码的还是看起来像 Base64(我找不到确凿的权威参考)。不过,这篇 Rexiology 文章可能会有所帮助。
我不确定 EventValidation,但您可以使用 Fritz Onion 的ViewState Decoder 解码 ViewState。
我最近需要解码 ViewStates,发现这个工具很有用:View State decoder
创建一个简单的 Windows 应用程序并用于Convert.FromBase64(str)
解码ViewState
未加密的数据。
注意:GridView 会导致加密。
如果使用 python,您可以使用此链接。
最好的方法是使用这个链接。
用于解码 ASP.NET 视图状态的小型 Python 3.5+ 库。
首先安装: pip install viewstate
>>> from viewstate import ViewState
>>> base64_encoded_viewstate = '/wEPBQVhYmNkZQ9nAgE='
>>> vs = ViewState(base64_encoded_viewstate)
>>> vs.decode()
('abcde', (True, 1))