Я пытаюсь создать журнал, когда аутентифицированный пользователь создает новый сеанс, но по какой-то причине я столкнулся со странным поведением. Для тестирования я установил время ожидания сеанса в 2 минуты в файле web.config:
<sessionState cookieName="AppName_SessionId" timeout="2" />
И в Global.asax.vb у меня есть следующий код для входа:
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
If My.User.IsAuthenticated = True Then
Log.Create()
End If
End Sub
Все работает правильно после того, как я войду в систему, закройте браузер и снова откройте его. Он регистрируется только один раз, когда я посещаю страницы, пока я нахожусь в сессии. Проблема в том, что когда я останавливаюсь и позволяю сеансу истечь (2 минуты для тестирования) и пытаюсь снова. Он регистрирует новый сеанс, который я ожидаю, но затем Session_Start запускается при каждом просмотре страницы. Я подтвердил это в разных браузерах.
Похоже, что после истечения сеанса, когда браузер все еще открыт, он не может поддерживать сеанс.