Iframe的回发导致Safari浏览器的Viewstate MAC错误

本文关键字:浏览器 Viewstate 错误 Safari MAC Iframe | 更新日期: 2023-09-27 18:13:29

我有3个。aspx文件。例如

GrandFather.aspx, Father.aspx and Child.aspx

的祖父。aspx页面有一个Iframe, Iframe的来源是Father.aspx。形式的父亲。aspx,我叫孩子。使用

Resposne.Redirect("Child.aspx");

结果iframe内容被Child.aspx改变了。现在是孩子。Aspx在回发时提交了一些表单数据。浏览器IE, FireFox, Google Chrome工作正常,但在Safari中,显示以下错误,

System.Web.HttpException: A field validation of viewstate MAC. If a Web Farm 
or cluster is hosted by this application, please check that you have to specify 
the configuration is the same validationKey and validation algorithm <machineKey>.
AutoGenerate can not be used in the cluster.

这个问题背后的原因是什么?我怎么解它?

我已经检查了Iframe的源,它总是显示父亲。

我使用的是。net 2.0, IIS是6.0。

编辑:

第一次回发时,Safari浏览器显示错误。但是,对于下一次尝试,错误将消失。

Iframe的回发导致Safari浏览器的Viewstate MAC错误

我的公司最近遇到了Safari + IFrame + Cookies的问题。
基本上,Safari在第一次加载Iframe时不接受任何cookie。这当然会造成各种各样的破坏,导致所有身份验证和会话都无法工作。

这里有一个与同源策略相关的问题。
它表示,一旦用户与Iframe页面进行交互,Safari就会正常运行。他们提出了一个解决方案,即使用JavaScript来POST一个空表单,Safari实际上认为这是"用户交互"。页面刷新后,Safari将正常运行。

我们的解决方案是简单地为Safari用户打破Iframe。这不是一个理想的解决方案,但正是我们真正需要的。