2015-02-18 9 views
0

В случае веб-приложения Asp.NET, используя сеанс сервера состояния и веб-ферму; Как ограничить пользователя от входа несколько раз. Если пользователь уже вошел в систему, ему не разрешается входить в систему, используя те же учетные данные из разных браузеров. Я нашел ссылку для автоматического выхода из предыдущей сессии Single Session Enforcement. Но требование состоит в том, чтобы сохранить первую сессию живой, а не вывести его из системы. всякий раз, когда второй сеанс пытается войти в систему, он должен получить сообщение об ошибке «Пользователь уже зарегистрирован».ограничить второй вход при первом сеансе входа в систему

У нас есть время сеанса из 20 мин.

Заранее спасибо.

+0

Вы должны указать, какие версии ASP.NET MVC вы говорите. Если вы используете ASP.NET MVC 5, вы должны сделать это через идентификатор ASP.NET. –

ответ

0

Для этого вам необходимо установить IsLoggedin статус в вас. При регистрации вы должны проверить этот статус. Если это true, то пользователь уже вошел в систему. И хотя logout вы должны изменить это на false.

Если пользователь закрыл браузер

$(function() { 
     //logic to signout user when he closes browser 
     window.onclick = function() { 
      clicked = true; 
     }; 

     window.onunload = function() { 
      if (clicked == false) { 
       $.get("/account/logout"); 
      } 
     }; 
    }); 

В завершении сеанса вы можете проверить if (GetUserContext() != null) затем изменить IsLoggedIn статус.

+0

Но как мы будем управлять, если пользователь закрывает браузер или сеанс истекает из-за бездействия 20 минут? –

+0

Вы должны добавить код в session expire. Для браузера закрыть check my edit –

+0

Window.Onclick [Window.OnClick] (https://developer.mozilla.org/en-US/docs/Web/API/Window.onclick) срабатывает даже при перенаправлении с одной страницы на другую, Также для кода, который вы используете, он будет выполнен любым щелчком мыши по окну. Что такое GetUserContext()? Это 'HttpContext.User' ?? –

0

Вы можете попробовать это: для currect browser

if (!Session.IsNewSession && Request.UrlReferrer == null) 
{ 
    // new 
} 
+0

Как это будет работать, если пользователь будет входить с разных компьютеров? –

 Смежные вопросы

  • Нет связанных вопросов^_^