我的VIEWSTATE是加密的吗?

时间:2011-06-14 11:50:38

标签: asp.net security encryption viewstate

我有点困惑。我没有明确设置Web.config <pages ViewStateEncryptionMode="Always" />,因此this MSDN page表示它应该默认为AutoThis MSDN page表示如果控件通过调用Auto方法请求加密,则RegisterRequiresViewStateEncryption应该使视图状态信息加密。但是,我的控件都没有调用该方法。所以看起来我的观点状态实际上应该不加密。

但是,当我将视图状态复制/粘贴到各种online viewstate decoders之一时,我被告知视图状态序列化数据无效。那么,我的viewstate是否加密?有一些明显的方法可以说明吗?是否更改了默认的ASP.net行为以通过defualt对viewstate进行编码,除非您禁用它?

3 个答案:

答案 0 :(得分:3)

如果将其设置为Always或auto,则所有控制状态都将被加密。调用RegisterRequiresViewStateEncryption视图状态的所有控件都将加密,而不是Auto / Always。如果您的“自定义控件”需要加密,请调用此方法

MSDN

上查看
  

如果您正在开发处理潜在敏感信息的自定义控件,请调用RegisterRequiresViewStateEncryption方法向页面注册控件,并确保控件的视图状态已加密。

     

整个页面状态将是   加密,如果   ViewStateEncryptionMode设置为Auto   或永远。

答案 1 :(得分:2)

强制启用它,看看你是否从解码器中得到了相同的错误。

强行关闭它,看它现在是否解码。

我认为这会给你一个你正在寻找的答案。

答案 2 :(得分:0)

可以在machine.config上找到默认设置,这是所有网络应用的常规超级配置。使用您的web.config,您可以覆盖它。你可以打开你的一个网站并查看内部。

在这里你可以找到machine.config:

%WinDir%\Microsoft.NET\Framework\<FrameworkVersion>\CONFIG