如何检查EnableViewStateMac是否在运行时设置?

时间:2009-07-23 13:42:03

标签: asp.net

在ASP.NET中,通常使用服务器上机器机密生成的签名来保护ViewState免受篡改。但是可以通过以下方式轻松关闭此保护:

<%@ Page ... EnableViewStateMac="false" %>

我正在编写一个ASP.NET控件,可能存储安全敏感信息(不是秘密......但不能被篡改),具体取决于EnableViewStateMac是否为true。

我如何测试它是否在运行时开启或关闭?

3 个答案:

答案 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