Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何检查是否在运行时设置了EnableViewStateMac?_Asp.net - Fatal编程技术网

Asp.net 如何检查是否在运行时设置了EnableViewStateMac?

Asp.net 如何检查是否在运行时设置了EnableViewStateMac?,asp.net,Asp.net,在ASP.NET中,ViewState通常通过服务器上的机器机密生成的签名在客户端受到保护,以防被篡改。但这种保护可以通过以下方式轻松关闭: <%@ Page ... EnableViewStateMac="false" %> 我正在编写一个ASP.NET控件,它可以存储安全敏感信息(不是秘密的…但不能篡改),具体取决于EnableViewStateMac是否为真 我如何测试它在运行时是打开还是关闭?您应该能够引用 Page.EnableViewStateMac 从您的代码中

在ASP.NET中,ViewState通常通过服务器上的机器机密生成的签名在客户端受到保护,以防被篡改。但这种保护可以通过以下方式轻松关闭:

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

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


我如何测试它在运行时是打开还是关闭?

您应该能够引用

Page.EnableViewStateMac
从您的代码中


您可以使用此.Page进行检查。EnableViewStateMac

上面的注释

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



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

您可能需要注意,从2014年9月起

所有版本的ASP.NET运行时1.1-4.5.2现在都禁止设置


哇。这表明,如果Intellisense中不存在某些东西,那么一些开发人员认为它根本不存在。它是该属性的完美去处,但该属性上设置了
[EditorBrowsable(editorbrowseblestate.Never)]
,这样Intellisense就不会暴露它。无论如何,谢谢!