2009-07-23 63 views
2

在ASP.NET中,ViewState通常可以防止在服务器上使用机器密钥生成的签名对客户端进行篡改。但是,这种保护可以很容易地关闭:如何检查EnableViewStateMac是否在运行时设置?

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

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

如何测试运行时是否打开或关闭?

回答

3

你应该只能够引用

Page.EnableViewStateMac 

从你的代码中。

http://msdn.microsoft.com/en-us/library/system.web.ui.page.enableviewstatemac.aspx

+0

哇。这只是表明如果Intellisense中不存在某些东西,一些开发人员根本不认为它存在。这是该属性去的理想场所,但该属性具有`[EditorBrowsable(EditorBrowsableState.Never)]`,因此Intellisense不会公开它。 无论如何,谢谢! – 2009-07-23 13:56:05

1

您可以检查使用this.Page。从上面的link

EnableViewStateMac

注意不要在代码中设置该属性。使用.aspx文件中的@ Page指令设置EnableViewStateMac属性。当页面被请求时,动态生成的类设置属性。


甲视图状态MAC是隐变量的加密版本,一个页的视图状态持续时的页面发送到浏览器。当此属性设置为true时,将检查加密的视图状态以验证它未在客户端上被篡改。