/// <summary> /// Возвращает PageStatePersister в зависимости он настроек ViewState mode в web.config /// </summary> /// <returns></returns> public override PageStatePersister GetStatePersister() { PageStatePersister pageStatePersister; switch (Globals.Settings.ViewState.ViewStateMode) { case ViewStateModes.Default: pageStatePersister = base.GetStatePersister(); break; case ViewStateModes.InPage: pageStatePersister = new HiddenFieldPageStatePersister(Page); break; case ViewStateModes.InSession: pageStatePersister = new SessionPageStatePersister(Page); break; case ViewStateModes.InMsSql: pageStatePersister = new StsSqlPageStatePersister(Page); break; default: throw new ArgumentOutOfRangeException(); } return(pageStatePersister); }
/// <summary> /// Метод по обработке запроса /// </summary> public void ProcessRequest(HttpContext context) { //todo: если такой GUID не существуют, доделать возврат ошибки и перегрузить страницу всвязи с устареванием сессии. //разместите здесь вашу реализацию обработчика. if (!String.IsNullOrWhiteSpace(context.Request["__VIEWSTATE"])) { var formatter = new ObjectStateFormatter(); var pair = formatter.Deserialize(context.Request["__VIEWSTATE"]) as Pair; if (pair != null && pair.First != null && pair.First.ToString().Length == 36) { if (StsSqlPageStatePersister.ResetPageStateTimeout(new Guid(pair.First.ToString()))) { context.Response.Write("OK"); } } } }