Я разрабатываю сайт ASP.net (с использованием .NET 4, EF, jQuery Ajax, SQL Server 2008 R2). На этом сайте я хочу запретить множественный вход
. Я имею в виду, что если вы войдете на сайт, вы не сможете снова войти на сайт из другого браузера или компьютера, так как вы уже вошли в систему.
Я заложил идею и развил ее на своем сайте, но у меня есть проблема, и именно из-за этой проблемы я решаю задать здесь вопрос
У меня есть такая таблица SQL Server:
Id [int] NOT NULL IDENTITY(1,1) //PK
UserId [int] NOT NULL //Relation to User table
Key [nvarchar](50) NOT NULL //Unique
Когда пользователь входит на сайт, я вставляю строку в эту таблицу следующим образом:
UserId = The Id of logged in user
Key = Session.SessionId
, а также есть код для удаления записи из этой таблицы, которая выполняется, когда:
Session_End
в global.asax
Все работает правильно и идеально, просто:
Проблема: когда пользователь закрывает браузер, эта строка не удаляется (я подумал, когда он закройте браузер, его строка в этой таблице будет удалена при событии Session_End
, но этого не произошло !!!)
Что я могу сделать? Любое решение этой проблемы? Следует ли мне изменить свою стратегию или есть решение?
Извините за мой плохой синтаксис.Я новичок в английском
Любая идея может быть полезна
касательно
Foroughi
UPDATE1 : я не использую членство ASP и сам управляю своими пользователями
UPDATE2 : я использую режим InProc для состояния сеанса с таймаутом 20 минут