// saves any view and control state to appropriate viewstate provider.
        // this method shields the client from viewstate key generation issues

        protected override void SavePageStateToPersistenceMedium(object viewState)
        {
            // create a unique name

            string random = _random.Next(0, int.MaxValue).ToString();
            string name   = "ACTION_" + random + "_" + Request.UserHostAddress + "_" + DateTime.Now.Ticks.ToString();

            ViewStateProviderService.SavePageState(name, viewState);
            ClientScript.RegisterHiddenField("__VIEWSTATE_KEY", name);
        }
        // retrieves viewstate from appropriate viewstate provider.
        // this method shields the client from viewstate key retrieval issues.

        protected override object LoadPageStateFromPersistenceMedium()
        {
            string name = Request.Form["__VIEWSTATE_KEY"];

            return(ViewStateProviderService.LoadPageState(name));
        }