【问题标题】:Use of ViewState in an auto scaled web app在自动缩放的 Web 应用程序中使用 ViewState
【发布时间】:2017-03-27 14:29:26
【问题描述】:

使用 ASP.NET 视图状态可能会导致多服务器环境中出现问题。

Resolving view state message authentication code (MAC) errors

视图状态是在 WebForms 之间往返的信息 (.aspx) 页面在 ASP.NET 应用程序中。 ...

因为 __VIEWSTATE 字段包含重要信息 用于在回发时重建页面,确保攻击者 不能篡改这个字段。 ...

为了防止这种篡改攻击,__VIEWSTATE 字段是 受消息验证码 (MAC) 保护。 ASP.NET 验证 与 __VIEWSTATE 有效负载一起提交的 MAC,当 回发发生。

有多种方法可以通过多服务器环境缓解此问题(在上面链接的文章中详细说明)。

这些方法是否需要在设置为自动缩放的 Azure Web 应用中应用?

【问题讨论】:

  • 您是否尝试过部署多实例应用服务并测试 PostBack 行为?我不能肯定地说,但我觉得应用服务会为您处理这类事情,例如解密一个实例上的值,而这些值在另一个实例上被加密。

标签: asp.net azure azure-web-app-service viewstate


【解决方案1】:

根据您的描述,我查看了您提到的关于解决视图状态消息身份验证代码 (MAC) 错误的document

关于 web 应用程序在农场(多服务器环境)中运行的情况如下:

某些网络托管服务,例如 Microsoft Azure 网站会采取措施在其后端服务器之间同步每个应用程序的自动生成密钥。这使得未指定显式元素的应用程序可以在这些环境中继续工作,即使应用程序正在场中运行。如果您的应用程序在第三方托管服务上运行,请联系您的托管服务提供商以确定这种情况是否适用于您。

另外,我尝试创建我的 ASP.NET WebForm 应用程序并部署到 Azure Web App(多个实例),它可以按预期工作。

【讨论】:

    猜你喜欢
    • 2014-11-07
    • 2014-05-30
    • 2019-09-16
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 2022-12-16
    • 2011-01-23
    相关资源
    最近更新 更多