C # .net веб-формы, избежать потери данных из-за тайм-аута сеанса - PullRequest
1 голос
/ 07 октября 2010

У меня есть пользователь, жалующийся на частые тайм-ауты на моей веб-странице в интрасети.В поисках решения я нашел этот пост:

http://forums.asp.net/t/152925.aspx?PageIndex=1

Если автор рекомендует перехватить перенаправление на страницу входа, отправить данные в базу данных, а затем либо повторно авторизовать пользователя (без их ведома) или перенаправить на страницу входа.Моя цель состоит в том, чтобы избежать ситуации, когда пользователь вводит данные в форму, уходит, затем возвращается, чтобы отправить их, только чтобы им сказали, что он должен снова войти в систему (это нормально, если данные остались и пользователь был отправлен правильно).вернуться к исходной веб-форме).

Кто-нибудь знает, как мне это сделать на определенных страницах моего приложения (не на всех)?

Ответы [ 3 ]

5 голосов
/ 07 октября 2010

Это не обязательно тривиально, но вы можете добавить компонент ajax, который время от времени вызывает страницы, чтобы поддерживать сеанс.Таким образом, вы можете продлить сеанс для любой конкретной страницы, которая вам нужна, не затрагивая приложение в целом.

РЕДАКТИРОВАТЬ

Если вы действительно хотите, чтобы сеанс истек, но сохраняя данные формы, вы можете реализовать обработчик событий

protected void Application_PostAuthenticateRequest (object sender, EventArgs e)

в вашем файле global.asax.cs.Это вызывается до того, как произойдет перенаправление проверки подлинности с помощью форм, и данные формы будут доступны вашему приложению на этом этапе, поэтому вы можете сохранить их на любом носителе до тех пор, пока ваш пользователь не будет снова аутентифицирован.Кроме того, если вы проверите свойство

((HttpApplication)sender).Request.Path

, оно сообщит вам, какая страница была запрошена.

0 голосов
/ 09 октября 2010

Я собираюсь попробовать использовать куки для сохранения данных.Мой план состоит в том, чтобы обновлять куки пользователя после каждого изменения элемента управления, а затем добавить логику в свойство page_load страницы, чтобы заполнить данные формы после того, как пользователь снова вошел в систему.

0 голосов
/ 07 октября 2010

Ну, это простой способ резко увеличить время ожидания, указанное в файле web.config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...