【问题标题】:viewStateEncryptionMode="Always" not encryptingviewStateEncryptionMode="Always" 不加密
【发布时间】:2011-11-01 23:43:51
【问题描述】:

由于一些安全问题,我需要启用视图状态加密。我关闭了 viewstate 和 viewstateMAC,但我需要加密 __VIEWSTATE 表单参数中包含的“control state”字符串。

目前我的 web.config 看起来像:

    <pages enableViewState="false" enableViewStateMac="false">

当我设置以下内容时,在 cassini 中,我的视图状态被加密:

    <pages enableViewState="false" enableViewStateMac="false" viewStateEncryptionMode="Always">

当我在我的 IIS 6 服务器上进行相同的更改时,什么也没有发生。

我看到应用程序域回收(事件:位于“C:...”中的应用程序“/LM/W3SVC/...”已为域“...”初始化)。当我触摸 web.config 但我没有像 cassini 那样获得加密的视图状态。我尝试过站点停止/启动、IIS 重置停止/启动、清除 ASP.NET 临时文件缓存。任何人对配置这个需要做什么有任何建议?

【问题讨论】:

  • (我已经问过这个before,但帖子有点太详细了......这被简化了,因为我正在重新讨论这个问题!)
  • 这并不能回答你的问题,但由于安全是一个问题,你不应该将enableViewStateMac设置为false,你应该使用ViewStateUserKey属性来保护你免受CSRF的影响攻击(即使使用加密的视图状态也可能发生)。或者更好的是,使用这个插件:anticsrf.codeplex.com.
  • 为什么你的 enableViewState 设置为 false???
  • 我不需要它。我有一个自定义构建的处理程序,充当 ASP.NET 之上的 MVC。无论哪种方式,所以我将我的 web.config 更改为这个,它仍然没有加密:

标签: asp.net encryption iis-6 viewstate cassini


【解决方案1】:

我遇到了类似的问题,归结为如果您预编译您的网站,页面的 web.config 节点将被忽略。您必须在编译时设置这些设置才能使其正常工作。我知道这已经晚了一年,但我想如果其他人来这里寻找问题的解决方案,这可能是有用的信息。

关于这个的一点点:http://blogs.msdn.com/b/asiatech/archive/2011/07/19/pages-settings-don-t-work-for-pre-compiled-asp-net-applications.aspx

  • (链接失效 - 指向此文档的博客:ASP.NET Web Site Project Precompilation Overview
  • 我的客户有一个 viewstate MAC 验证问题。作为一种解决方法,他想禁用 在找出最终解决方案之前进行 viewstate MAC 验证。然而, 在添加跟随设置后,他仍然看到问题 配置文件。

    客户的应用程序是一个预编译的 ASP.Net 应用程序,带有 可更新选项已禁用。查看编译器生成的代码 通过上述设置,我们发现这些设置是硬编码的。所以这 意味着只需将上述设置添加到 web.config 不会影响 预编译的应用程序。为了使其生效,应用程序 必须重新编译。

    [DebuggerNonUserCode]

    private void __BuildControlTree(default_aspx __ctrl)

    {

    __ctrl.EnableViewStateMac = false;
    
    __ctrl.EnableEventValidation = false;
    

    __ctrl.ViewStateEncryptionMode = ViewStateEncryptionMode.Never;

    这是一种设计行为。

【讨论】:

  • 这正是我们部署“禁用可更新选项的预编译 ASP.Net 应用程序”的方式,很可能是我的问题。永远不会太晚,感谢您的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-03
  • 2022-10-15
  • 1970-01-01
  • 1970-01-01
  • 2021-01-08
  • 2019-02-04
  • 1970-01-01
相关资源
最近更新 更多