We have a form page with an AJAX submit that will redirect the user to a new page. This page is iframed in to another web page. The form is then filled out and submitted. Before going to the next page, it gives the user an internal error. Then the error happening in Service Center says "Cannot decrypt the content. Error Deserializing ViewState of page." This internal error only happens when submitting the form in iOS Safari and IE.

My team found a fix to this using various resources online. The problem is in IE and iOS Safari restricting cookies from a server in a 3rd party context. In order to bypass this, you must declare the privacy policy for how your cookies will be used (P3P - Platform for Privacy Preferences Project). When IE or iOS Safari receive a cookie, they reference the cookie's privacy policy and look at the user's configured preferences for whether or not to accept or reject the cookie.

In order to fix this bug, you must add an "addHeader" Server Action to your preparation. Before the page is rendered, you want to notify the browser that your site cookies should be accepted.

P3P is now an obsolete protocol. However, their first and last implementation only required the cookie to have a privacy policy. Therefore, the CP (Compact Policy) can be set to anything. I set the CP to all so that all identified data is accepted.

Unfortunately, this problem still persists on Mac Safari.

Please reference this article for additional information: https://blogs.msdn.microsoft.com/ieinternals/2013/09/17/a-quick-look-at-p3p/ 

Hope this helps.

Interesting and useful article thanks. I assume that your iframe is to a different domain or a sub domain of your main one? We haven't had a problem with iframes but all ours have always been on the primary domain.

Yes, you are exactly correct. Our iframe is to a different domain than the actual site. This may be why users may experience this problem.