2014-11-07 1 views
1

Известно, что при включении slideExpiration (slidingExpiration="true") тайм-аут авторизации будет сбрасываться с каждым запросом. Но я не уверен, и я не смог найти, когда это произойдет. Это произойдет, когда запрос «Получить ресурс» или «Время выпуска». Если второе верно, функция slideExpiration только сбросит тайм-аут, если мы реализуем IRequiresSessionState, потому что это единственный интерфейс, который приобретает эксклюзивную блокировку, поэтому единственная, которая нуждается в элементе release (SetAndReleaseItemExclusive).Устраняет ли IReadOnlySessionState таймауты, если включена функция SlideExpiration?

ответ

0

Ну, я нашел решение, используя оба интерфейса и просмотра результатов ... С slidingExpiration включена tiemeout в настоящее время сбрасывается независимо вы используете IReadOnlySessionState или IRequiresSessionState

Ниже сценарий, в котором я примеряла.

У меня есть приложение, которое имеет некоторые классические ASP-экраны, живущие вместе с .Net-страницами. Чтобы избежать тайм-аутов, если пользователь использует только классические страницы ASP, у меня есть общий обработчик, называемый KeepAlive (KeepAlive.ashx), который вызывается каждый раз, когда открыта страница Classic asp. Код ASHx довольно просто

public class KeepAlive : IHttpHandler, IRequiresSessionState 
{ 
    /// <summary> 
    /// Processes the request 
    /// </summary> 
    /// <param name="context"></param> 
    public void ProcessRequest(HttpContext context) 
    { 
    } 
} 

Я изменил <sessionState timeout="1" /> в web.config, так что я не нужно ждать 20 минут: P, и я изменил KeepAlive использовать IReadOnlySessionState. Если я продолжаю открывать классические ASP-экраны в течение 1 минуты, я не получаю тайм-ауты аутентификации, это означает, что тайм-ауты сбрасываются независимо от использования эксклюзивных блокировок или нет.

Надеюсь, это поможет кому-то еще :)