1

Our QA team reported that one of our applications is not working in Safari in Windows 7. After checking the problem we figured out that any postback event is not working. After some tries we found that Page.IsPostback() reports false and thinks it’s a first-time load of the page and postback did not include ViewState.

We tried many solutions including
ASP.Net postback problem with ViewState in Safari on Windows 7
Viewstate invalid when using Safari
ViewState Chunking in ASP.NET 2.0 (maxPageStateFieldLength)

but all didn't bring Safari to work.

There is nothing special about this application. It is normal pages that use one master page that is a very normal master page.

Any suggestions?

Community
  • 1
  • 1
Ahmed Atia
  • 17,848
  • 25
  • 91
  • 133
  • My suggestions. 1. Check for javascript errors, 2. Compress and cut in smaller pieces the view state. – Aristos Aug 04 '12 at 08:49
  • @Aristos, there are no javascript errors. Also, I cut the viewstate into multiple fields but the same issue is still there, any postback considered as a totally new postback :( – Ahmed Atia Aug 04 '12 at 09:09
  • What do you see ? is the post back happens or not happens at all and be there waiting for ever ? – Aristos Aug 04 '12 at 11:01
  • @Aristos, postback happens but Page.IsPostback() reports false and thinks it’s a first-time load of the page and postback did not include ViewState. – Ahmed Atia Aug 04 '12 at 13:42
  • So you try to make post back and you have reload. Can you see if a javascript code make this issue ? – Aristos Aug 04 '12 at 19:33
  • @kman0, nope still have the same issue? What about you? – Ahmed Atia Oct 10 '12 at 06:37
  • 1
    @kman0: I figured out how to resolve that issue. Please check my answer below. – Ahmed Atia Oct 13 '12 at 18:00

1 Answers1

3

Safari has an issue when working with Windows Authentication under IIS if Negotiate provider is enabled so AJAX POST is not working.

How to resolve?
In IIS, go to the Authentication settings of your website. Right click on Windows Authentication, choose providers and remove Negotiate, leaving NTLM this makes everything works fine.

[References]
AJAX POST Request Only Works Once in Safari 5
Negotiate Mechanism article in Wikipedia shows that it is not implemented in Safari

Community
  • 1
  • 1
Ahmed Atia
  • 17,848
  • 25
  • 91
  • 133
  • You doesn't have to go in the ISS (International Space Station), but in IIS is enough ;) Joking aside, for IIS Express, you will find this configuration in the file `C:\Users\[Username]\Documents\IISExpress\config\applicationhost.config` and search for the `windowsAuthentication` section within the `` section. – Matthieu Charbonnier Dec 07 '14 at 10:13