【问题标题】:Is my VIEWSTATE encrypted?我的 VIEWSTATE 加密了吗?
【发布时间】:2011-09-14 15:24:11
【问题描述】:

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

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

【问题讨论】:

  • 请注意,如果视图状态包含用户控件,在线视图状态解码器有时会显示“序列化数据无效”,无论是否使用加密。

标签: asp.net security encryption viewstate


【解决方案1】:

默认设置可以在您的 machine.config 中找到,它是您所有 Web 应用程序的通用超级配置。使用您的 web.config,您可以覆盖它。您可以打开其中一个网站并查看内部。

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

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

【讨论】:

    【解决方案2】:

    强制打开,看看你是否从解码器中得到同样的错误。

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

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

    【讨论】:

      【解决方案3】:

      如果设置为 Always 或 auto,则所有控件状态都将被加密。所有调用 RegisterRequiresViewStateEncryption 视图状态的控件都将被加密,而与 Auto/Always 无关。如果您的“自定义控件”需要加密,请调用此选项。

      在MSDN上看到这个

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

      整个页面状态将是 加密,如果 ViewStateEncryptionMode 设置为自动 或总是。

      【讨论】:

      • 啊。 “如果 ViewStateEncryptionMode 设置为 Auto 或 Always,整个页面状态将被加密。”我没有注意到,谢谢。我想我会将它设置为 Always 只是为了更好地衡量,但无论如何,当设置为默认值 (Auto) 时,它应该被加密。
      猜你喜欢
      • 1970-01-01
      • 2010-09-25
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      相关资源
      最近更新 更多