Почему Response.Cache.SetNoStore () не работает в классе, производном от System.Web.UI.Page - PullRequest
1 голос
/ 27 мая 2011

Я работаю на сайтах регистрации как часть моей работы, и появляются шаблоны, которые я пытаюсь использовать в центральной BasePage DLL. Здесь я создал полезные и многократно используемые методы, такие как методы, помогающие отправлять электронные письма, и настройки внедрения зависимостей для Ninject.

Может быть полезно отметить, что BasePage - это ссылка, которую я добавляю на сайт.

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

Код, который я использую:

        // Stop Caching in IE
        Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);

        // Stop Caching in Firefox
        Response.Cache.SetNoStore();

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

Проблема в том, что, я думаю, это частично связано с тем фактом, что BasePage является DLL-библиотекой, на которую ссылаются, если я использую вызов метода из моего BasePage dll, кэш не отключен.

Кто-нибудь знает, есть ли способ, которым я могу использовать вызов этого метода из моей BasePage dll, чтобы отключить кэш на странице, или я должен держать его локально для веб-сайта?

ОБНОВЛЕНИЕ 07/07

Нашли что-то интересное.

Несколько сайтов предлагают использовать переменную сеанса, чтобы определить, возвращается ли кто-то на страницу. если это так, вы открываете страницу остановки.

Вам нужен noCache, чтобы страница обновляла событие Page_Load

Но я также обнаружил: у меня есть страница, которая содержит вышеупомянутый код, но у меня есть пользовательская проверка, которая должна попасть на сервер для проверки и вернуть ошибку проверки. На исправление, так что значение является действительным, затем отправка снова. Нажатие назад говорит о том, что срок действия страницы истек.

Так что, если я изменю всю проверку так, чтобы EnableClientScript было ложным, любая ошибка приведет к истечению тайм-аута веб-сервера по событию кнопки возврата после его успешной отправки.

Это не исправляет это полностью, но это остановит людей, нажимающих назад в определенном случае, когда они вводят недопустимое значение.

Приветствия

Люк

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