abdul subhan mohammed Ответов: 2

Как предотвратить несколько входов в систему для одного и того же пользователя в приложении windows C#?


Дорогие Все,

У меня есть встроенные веб-приложения и приложения для windows asp.net C# и база данных SQL server.

Я хотел бы остановить пользователя(ов) для входа в приложение windows с тем же идентификатором пользователя/паролем.

Пользователи одновременно входят в приложение windows с одним и тем же идентификатором пользователя и паролем одновременно, но на разных машинах.

Что я уже пробовал:

Я попытался обновить статус вошедшего в систему пользователя как "LoggedIn", но это обновление одновременно с двух машин для одного и того же пользователя.

Как я могу запретить пользователю несколько входов в систему?

Кто-нибудь может пожалуйста помочь мне.


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

F-ES Sitecore

Попытка остановить несколько входов в систему обычно бессмысленна и технически невозможна. Какую проблему вы пытаетесь решить?

[no name]

1

2 Ответов

Рейтинг:
1

Andy Lanng

Я обнаружил, что лучший способ предотвратить несколько входов в систему для пользователя-это разрешить ему войти в систему, но предупредить его, что он будет выходить из других машин, а затем выйти из системы, если он согласится.

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

К вашему сведению: это также заботится о том, чтобы не проверять процесс выхода из системы в случае сбоя экземпляра


[no name]

1

Рейтинг:
1

Nirav Prabtani

Вы должны создавать более одной таблицы, имеющей название activeLogin с ревущими упомянутыми колоннами

RefID, Key, LoginTime, LogoutTime, IsActive

Вы можете сгенерировать пользовательский ключ во время установки приложения или во время запуска приложения, вы можете сохранить его в отношении времени входа в систему.

Этот ключ может быть чем угодно, например материнской платой, пользовательским ключом, хранящимся как .ini файл или любой другой конфигурационный файл.

Вы можете проверить это в таблице во время выполнения действия входа в приложение. Если столбец Logout равен NULL и IsActive = true, а ket отличается, то вы можете запросить "вы уверены, что хотите войти в систему?", затем вы должны установить Logout = GetDate() и IsActive = false, это приведет к новой записи в таблице activelogin с новым ключом и временем.

Таким образом, Вы можете проверить этот ключ с регулярным интервалом времени, например 1 или 2 минуты, если вы не можете найти соответствующий ключ, который должен быть активен, то вы можете выключить приложение


[no name]

1