2017-01-20 16 views
1

я использую FormsAuthentication и Auth Механизм пользователей черезВыход пользователя из всех браузеров

FormsAuthentication.SetAuthCookie(...); 

Могу ли я выход из системы текущего пользователя из все браузеры каким-то образом?

+0

Что вы подразумеваете под всеми браузерами ... вы имеете в виду IE, Edge, Chrome, Safari и т. Д.? Ака ... каждый браузер установлен на компьютере? Насколько мне известно, вам нужно выяснить, как найти список всех установленных браузеров, а затем выяснить, как (если это возможно) заставить пользователя выйти из вашей системы в этом браузере. –

+0

Например, если я вошел в систему на одном компьютере и на другом. Мне нужно выйти из текущего пользователя из двух браузеров. У Дойу есть идея, как это сделать? – Vnuuk

+0

Когда вы хотите это сделать? когда пользователь выходит из одного браузера или с сервера с помощью какого-либо интерфейса администратора. – mfahadi

ответ

1

Добавьте параметр guid внутри параметров аутентификации. Также сохраните guid в таблице сеанса, например, как это;

public class sessionLog 
    { 
    public int UserID { get;set;} 
    public string Guid {get;set;} 
    // ... may be you can add IP, datetime or isSessionClosed etc 
    } 

При входе в систему добавить строку в таблицу, сохранить guid внутри файла cookie. Проверьте аутентификацию пользователя с помощью идентификатора пользователя и указателя.

Удалите вывод строки с помощью guid или удалите все с идентификатором пользователя для закрытия всех сеансов.

0

Технически, это невозможно. Пользователь аутентифицируется с помощью зашифрованного файла cookie, установленного в браузере. Регистрация пользователя просто недействительна для этого файла cookie. Невозможно затем аннулировать файлы cookie, которые могут существовать в других браузерах или даже других машинах.

Единственный способ, которым вы могли бы достичь чего-то подобного, это указать каким-то образом связать с учетной записью пользователя, что они были выведены из системы. Это может быть дополнительный столбец в вашей таблице профилей или другом носителе постоянного типа. Независимо от того, что вы делаете, вам нужно будет посмотреть на это, когда аутентифицированный пользователь обратится к некоторой части вашего сайта. Если они были ранее выведены из системы, вы затем выведете их снова на этом экземпляре браузера/машины. Когда они войдут в систему снова, вы очистите все, что вы ранее установили, чтобы они оставались аутентифицированными. Другими словами, вы должны проверить и аннулировать файл cookie auth в каждом браузере, когда пользователь пытается получить доступ к сайту из этого браузера. Невозможно ничего сделать, пока пользователь не обратится к вашему сайту с этого конкретного браузера.

0

Вам необходимо сохранить список пользователей, зарегистрированных в переменной приложения. Если пользователь с этим Руководством пытается снова войти в систему, вы можете отобразить сообщение, которое они уже зарегистрировали в другом месте ....

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