Я пишу приложение и столкнулся с проблемой кеширования, которую я не могу решить.
У меня есть домашний контроллер по умолчанию для сайта, который проверяет, аутентифицирован ли пользователь или нет.
Если нет, то отображается LogOn View, в противном случае клиент перенаправляется на другую страницу.
Наряду с представлением LogOn пользователю также отправляется файл cookie для проверки, чтобы проверить, поддерживает ли его браузер файлы cookie или нет.
Когда я удаляю cookie перед отправкой формы с учетными данными, Home (метод Post) в контроллере Home отображает сообщение о том, что куки должны быть включены с помощью кнопки
следует обновить страницу с полями входа в систему (http://localhost:1234/)
Эта кнопка связана с функцией обновления js:
var sURL = unescape("/");
function refresh()
{
window.location.href = sURL;
}
Я реализовал CacheFilter, установленный на базовом контроллере.
public class NoCache : ActionFilterAttribute, IActionFilter
{
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
filterContext.HttpContext.Response.Cache.SetNoStore();
base.OnResultExecuting(filterContext);
}
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
base.OnResultExecuted(filterContext);
}
}
и проблема в том, что если я немедленно нажму кнопку, чтобы обновить страницу входа в систему, браузер прочитает ее, используя ее кэш. Но когда я делаю это через несколько секунд, тогда запрос отправляется на сервер.
Это неправильно, поскольку страница входа в систему должна также снова создать файл cookie проверки.
Мне кажется, что политика кэширования установлена на 1-2 секунды, и по истечении этого времени страницы перезагружаются с сервера.
Что не так? Спасибо за помощь.