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