在ASP.NET中,通常使用服务器上机器机密生成的签名来保护ViewState免受篡改。但是可以通过以下方式轻松关闭此保护:
<%@ Page ... EnableViewStateMac="false" %>
我正在编写一个ASP.NET控件,可能存储安全敏感信息(不是秘密......但不能被篡改),具体取决于EnableViewStateMac是否为true。
我如何测试它是否在运行时开启或关闭?
答案 0 :(得分:3)
你应该能够参考
Page.EnableViewStateMac
从您的代码中。
http://msdn.microsoft.com/en-us/library/system.web.ui.page.enableviewstatemac.aspx
答案 1 :(得分:1)
您可以使用this.Page查看。 EnableViewStateMac
请注意以上link
不要在代码中设置此属性。使用.aspx文件中的@ Page指令设置EnableViewStateMac属性。请求页面时,动态生成的类设置属性。
视图状态MAC是隐藏变量的加密版本,当页面发送到浏览器时,页面的视图状态将持久保存。当此属性设置为true时,将检查加密视图状态以验证它是否未在客户端上被篡改。
答案 2 :(得分:1)
您可能需要注意截至2014年9月
所有版本的ASP.NET运行时1.1 - 4.5.2现在都禁止设置
&lt;%@ Page EnableViewStateMac =“false”%&gt;
和
&lt; pages enableViewStateMac =“false”/&gt;
http://blogs.msdn.com/b/webdev/archive/2014/09/09/farewell-enableviewstatemac.aspx