1
private void PreventPageFromBeingCached(AuthorizationContext filterContext) 
{ 
    var cachePolicy = filterContext.HttpContext.Response.Cache; 
    cachePolicy.SetProxyMaxAge(new TimeSpan(0)); 
} 

Я спрашиваю, что я изначально имел следующий код в обычае AuthorizeAttribute:Этот метод делает то, что он говорит, что он будет делать (чтобы страница не кэшировалась)?

private void PreventPageFromBeingCached(AuthorizationContext filterContext) 
{ 
    var cachePolicy = filterContext.HttpContext.Response.Cache; 
    cachePolicy.SetProxyMaxAge(new TimeSpan(0)); 
    cachePolicy.AddValidationCallback(CacheValidateHandler, null); 
} 

protected void CacheValidateHandler(
    HttpContext context, object data, ref HttpValidationStatus validationStatus) 
{ 
    //todo validationStatus = OnCacheAuthorization(new HttpContextWrapper(context)); 
} 

Я в основном вставили этот код из ответа на StackOverflow некоторое время назад, и с тех пор я переехал эту логику до IAuthorizationFilter.

Проблема заключается в том, что, переключившись на интерфейс, я потерял AuthorizeAttribute в исполнении OnCacheAuthorization. Согласно документам, «OnCacheAuthorization» вызывается, когда модуль кэширования запрашивает авторизацию ». Это на самом деле не говорит мне, что мне нужно сделать для реализации этого метода, или если мне даже нужен обратный вызов в первую очередь.

Вопросы

  1. Будет PreventPageFromBeingCached фактически предотвратить страницу от кэширования с помощью всего двух строк кода или сделать мне нужно также включать cachePolicy.AddValidationCallback(CacheValidateHandler, null); и CacheValidateHandler() метод (плюс внедрение OnCacheAuthorization())?
  2. Если мне действительно нужен дополнительный код, что именно он делает?
  3. Если у меня все в порядке, как предотвратить кэширование страницы?

ответ

2

Лично мне нравится подход контроллера, как я указал here

У вас нет вопросов, вы обеспокоены тем, лучшее, что я мог сказать, за счет использования этого в моих приложениях как вы используете кеширование клиентов.

+0

Спасибо, что помогает упростить вещи * много *. – devuxer

Смежные вопросы