Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
 /// <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");
             }
         }
     }
 }