I have a set of modules that process online payments. When a user makes a payment, I "POST" to my credit card processor's gateway, the user enters their credit card info on the gateway's PCI Compliant page. After the gateway processes the payment, they redirect back to my site via a "POST" (I think).
When my PaymentApproved page loads, I get the following error:
Error An error has occurred.
DotNetNuke.Services.Exceptions.PageLoadException: Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. ---> System.Web.HttpException: Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. ---> System.Web.UI.ViewStateException: Invalid viewstate. Client IP: 127.0.0.1 Port: 4908 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729) ViewState: /wEPDwUJLTc1MDYyMzU4DxYcHg5FQ09NUmVzcG9uc2VJRAUkNjRmYTA4MjEtMzg0OC00MmU0LTkzMTMtYzQzMTZhNWUwMDE1HhBDcmVkaXRDYXJkTnVtYmVyBQQwMDAwHgxSZXNwb25zZVRleHQFECAgTk8gIE1BVENIICAgICAeE1B1cmNoYXNlSWRlbnRpZmllcjIFIFVCOjAxLTEwMDMwMC0wMTo1MC4wMDoyLjI1OjUyLjI1HgxSZXNwb25zZUNvZGUFAjAwHhNQdXJjaGFzZUlkZW50aWZpZXIxBSQ4OGYxMzdhMy0yNGU0LTQzMjktYjU0Mi1iMTRiNzBkYWVhYTkeC1JlZGlyZWN0VVJMBWdodHRwOi8vbG9jYWxob3N0L215bGF3ci9PbmxpbmVQYXltZW50cy9VdGlsaXR5QWNjb3VudFBheW1lbnRzL3RhYmlkLzYwL2NpZC9wYXltZW50YXBwcm92YWwvRGVmYXVsdC5hc3B4HhFUcmFuc2FjdGlvbkFtb3VudAUFNTIuMjUeDVRyYW5zYWN0aW9uSUQFJntDRTIxRjJFMC0xQkFELTRBNjQtOUI2RS0zQzMyRTE3N0U1NUR9Hg1FQ09NUmVxdWVzdElEBSZ7MUY1RjkyODUtOEYyQS00MUM2LTg5M0ItODZEQUMzRjA1OENCfR4YQ3JlZGl0Q2FyZEV4cGlyYXRpb25EYXRlBQQwNTEwHg5DcmVkaXRDYXJkVHlwZQUEVklTQR4NQVZTUmVzdWx0Q29kZQUBTh4MQXBwcm92YWxDb2RlBQZFVFNNUzMWAgIBDxYCHgZhY3Rpb24FZ2h0dHA6Ly9sb2N... ---> System.Web.HttpException: Unable to validate data. at System.Web.Configuration.MachineKeySection.GetDecodedData(Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Int32& dataLength) at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) --- End of inner exception stack trace --- --- End of inner exception stack trace --- at System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) at System.Web.UI.ViewStateException.ThrowMacValidationError(Exception inner, String persistedState) at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) at System.Web.UI.HiddenFieldPageStatePersister.Load() at System.Web.UI.Page.LoadPageStateFromPersistenceMedium() at System.Web.UI.Page.LoadAllState() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- End of inner exception stack trace ---
I did a little research an found that if I set enableViewStateMac="false" in the web.config that my problem was solved.
My question is, how does this effect the overall security & etc for my site? Is there a way to set enableViewStateMac="false" for only one page?