c# - ViewState non valido solo in Safari

original title: "c# - ViewState invalid only in Safari"


One of the sites I maintain relies heavily on the use of ViewState (it isn't my code). However, on certain pages where the ViewState is extra-bloated, Safari throws a "Validation of viewstate MAC failed" error.

This appears to only happen in Safari. Firefox, IE and Opera all load successfully in the same scenario.

Uno dei siti che gestisco dipende fortemente dall'uso di ViewState (non è il mio codice). Tuttavia, in alcune pagine in cui ViewState è molto gonfio, Safari genera una "Convalida del viewstate MAC ...

Questo è il riepilogo dopo la traduzione, se è necessario visualizzare la traduzione completa, fare clic sull'icona "traduci"

Tutte le risposte
  • Translate

    While I second the Channel 9 solution, also be aware that in some hosted environments Safari is not considered an up-level browser. You may need to add it to your application's browscap in order to make use of some ASP.Net features.

    That was the root cause of some headaches we had for a client's site that used the ASP Menu control.

  • Translate

    My first port of call would be to go through the elements on the page and see which controls:

    1. Will still work when I switch ViewState off
    2. Can be moved out of the page and into an AJAX call to be loaded when required

    Failing that, and here's the disclaimer - I've never used this solution on a web-facing site - but in the past where I've wanted to eliminate massive ViewStates in limited-audience applications I have stored the ViewState in the Session.

    It has worked for me because the hit to memory isn't significant for the number of users, but if you're running a fairly popular site I wouldn't recommend this approach. However, if the Session solution works for Safari you could always detect the user agent and fudge appropriately.

  • Translate

    I've been doing a little research into this and whilst I'm not entirely sure its the cause I believe it is because Safari is not returning the full result set (hence cropping it).

    I have been in dicussion with another developer and found the following post on Channel 9 as well which recommends making use of the SQL State service to store the viewstate avoiding the postback issue and also page size.


    Does this seem like the best solution?