我的VIEWSTATE是否已加密?

问题描述

| 我有点困惑。我没有显式设置Web.config
<pages ViewStateEncryptionMode=\"Always\" />
,因此此MSDN页面说它应认为
Auto
。这个MSDN页面上说,如果控件通过调用
RegisterRequiresViewStateEncryption
方法请求加密,则
Auto
应该导致对视图状态信息进行加密。但是,我的控件都没有调用方法。因此,看来我的viewstate实际上不应该加密。 但是,当我将视图状态复制/粘贴到各种在线视图状态解码器之一中时,会被告知视图状态序列化数据无效。那么,我的viewstate是否已加密?有什么明显的方法可以告诉吗?除非将其禁用,否则认的ASP.net行为是否已更改为通过defualt编码视图状态?     

解决方法

        如果将其设置为“始终”或“自动”,则所有控件状态都将被加密。所有调用“ 3”视图状态的控件将被加密,而与“自动/始终”无关。如果您的“自定义控件”需要加密,请调用此方法。 在MSDN上看到这个   如果要开发处理潜在敏感信息的自定义控件,请调用RegisterRequiresViewStateEncryption方法以在页面上注册该控件,并确保该控件的视图状态已加密。      整个页面状态为   如果加密   ViewStateEncryptionMode设置为Auto   或始终。     ,        强制将其打开,看看是否从解码器中收到相同的错误。 强制关闭,看看它现在是否解码。 我认为这将为您提供所需的答案。     ,        可以在您的machine.config上找到默认设置,这是所有Web应用程序的常规超级配置。使用您的web.config可以覆盖它。您可以打开您的网站之一,然后浏览内部。 在这里您可以找到machine.config:
%WinDir%\\Microsoft.NET\\Framework\\<FrameworkVersion>\\CONFIG