Время ожидания сеанса ASP.NET слишком рано - PullRequest
2 голосов
/ 02 июня 2010

Я пытаюсь создать журнал, когда аутентифицированный пользователь создает новый сеанс, но по какой-то причине я столкнулся со странным поведением. Для тестирования я установил время ожидания сеанса в 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 запускается при каждом просмотре страницы. Я подтвердил это в разных браузерах.

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

1 Ответ

1 голос
/ 02 июня 2010

Мое исправление заключалось в добавлении чего-либо в сессию:

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs) 

   If My.User.IsAuthenticated = True Then 
      Log.Create() 
      Session("SessionLogged") = True
   End If 

End Sub 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...