c# .net safari viewstate

c# - ViewState inválido solo en Safari



.net (3)

He estado investigando un poco sobre esto y aunque no estoy completamente seguro de que sea la causa, creo que es porque Safari no devuelve el conjunto completo de resultados (por lo tanto, lo recorta).

He estado en discusión con otro desarrollador y encontré la siguiente publicación en el Canal 9 que también recomienda utilizar el servicio SQL State para almacenar viewstate evitando el problema de la devolución de datos y también el tamaño de la página.

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

¿Esto parece ser la mejor solución?

Uno de los sitios que mantengo depende en gran medida del uso de ViewState (no es mi código). Sin embargo, en ciertas páginas donde ViewState está muy exagerado, Safari arroja un error de "Validation of viewstate MAC failed" .

Esto parece suceder solo en Safari. Firefox, IE y Opera se cargan con éxito en el mismo escenario.


Mi primer puerto de escala sería revisar los elementos en la página y ver qué controles:

  1. Aún funcionará cuando desactive ViewState
  2. Se puede mover de la página a una llamada AJAX para cargarla cuando sea necesario

En su defecto, y aquí está la exención de responsabilidad: nunca he usado esta solución en un sitio web, pero en el pasado en el que quise eliminar ViewStates masivos en aplicaciones de audiencia limitada, he almacenado ViewState en la sesión.

Me ha funcionado porque el golpe a la memoria no es significativo para la cantidad de usuarios, pero si está ejecutando un sitio bastante popular, no recomendaría este enfoque. Sin embargo, si la solución de sesión funciona para Safari, siempre se puede detectar el agente de usuario y mezclar adecuadamente.


Mientras secundo la solución del Canal 9, también tenga en cuenta que en algunos entornos alojados Safari no se considera un navegador de nivel superior. Es posible que deba agregarlo a la capacidad de la frente de su aplicación para utilizar algunas características de ASP.Net.

Esa fue la causa raíz de algunos dolores de cabeza que tuvimos para el sitio de un cliente que utilizaba el control del menú ASP.