ViewState的只有Safari无效(ViewState invalid only in Saf

2019-09-21 02:16发布

一个我维护网站在很大程度上依赖于使用ViewState (这不是我的代码)。 然而,在某些网页,其中ViewState是多余的臃肿,Safari浏览器抛出一个"Validation of viewstate MAC failed"的错误。

这似乎只能在Safari发生。 火狐,IE和Opera在相同的情况下成功地所有负载。

Answer 1:

当我第二频道9解决方案,也知道,在一些托管环境Safari浏览器不被认为是上一级的浏览器。 您可能需要将其添加到您的应用程序的browscap为了利用一些ASP.Net功能。

这是有些头疼,我们曾经对自己使用的ASP菜单控制一个客户的网站的根本原因。



Answer 2:

我的第一个停靠港将要经过的页面上的元素,看看它控制:

  1. 当我切换ViewState的关闭将仍然工作
  2. 可以移出的页面,进入一个AJAX调用需要时加载

如果做不到这一点,和这里的声明 - 我从来没有使用上的Web面向网站这个解决方案 - 但在我想消除在有限的观众大规模应用的ViewStates过去,我已经存储了ViewState中的会话。

它很适合我,因为命中内存不是用户数量显著,但如果你正在运行一个相当受欢迎的网站,我不会推荐这种方法。 但是,如果会议解决方案适用于Safari浏览器,你可以随时检测用户代理,并适当地做傻事。



Answer 3:

我一直在做一点点研究,这一点,虽然我不能完全肯定它的原因,我相信这是因为Safari浏览器没有返回完整的结果集(因此它裁剪)。

我一直在dicussion与其他开发和发现频道9以及其中建议利用该SQL国家服务的存储视图状态,避免回发的问题,还页面大小以下职位。

http://channel9.msdn.com/forums/TechOff/250549-ASPNET-ViewState-flawed-architecture/?CommentID=270477#263702

这看起来是最好的解决方案?



文章来源: ViewState invalid only in Safari