//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ namespace System.Web.UI { using System; using System.Collections; using System.Collections.Specialized; using System.IO; using System.Text; using System.Security.Permissions; using System.Web.Security.Cryptography; public class HiddenFieldPageStatePersister : PageStatePersister { public HiddenFieldPageStatePersister(Page page) : base (page) { } public override void Load() { NameValueCollection requestValueCollection = Page.RequestValueCollection; if (requestValueCollection == null) { return; } string viewStateString = null; try { viewStateString = Page.RequestViewStateString; // VSWhidbey 160556 if (!String.IsNullOrEmpty(viewStateString) || !String.IsNullOrEmpty(Page.ViewStateUserKey)) { Pair combinedState = (Pair)Util.DeserializeWithAssert(StateFormatter2, viewStateString, Purpose.WebForms_HiddenFieldPageStatePersister_ClientState); ViewState = combinedState.First; ControlState = combinedState.Second; } } catch (Exception e) { // throw if this is a wrapped ViewStateException -- mac validation failed if (e.InnerException is ViewStateException) { throw; } ViewStateException.ThrowViewStateError(e, viewStateString); } } /// /// To be supplied. /// public override void Save() { if (ViewState != null || ControlState != null) { Page.ClientState = Util.SerializeWithAssert(StateFormatter2, new Pair(ViewState, ControlState), Purpose.WebForms_HiddenFieldPageStatePersister_ClientState); } } } }