По сути, я спрашиваю этот вопрос здесь, но я использую ASP Identity вместо поставщика ASP.Net Membership, и поэтому этот ответ мне бесполезен.
Разрешить только один сеанс входа в систему для каждого пользователя
comment
stackoverflow .com/questions/2922502/
- person Michael B.   schedule 18.08.2014
comment
возможный дубликат Когда один и тот же идентификатор пользователя пытается войти в систему на нескольких устройствах, как мне завершить сеанс на другом устройстве?
- person Simon Halsey   schedule 18.08.2014
comment
Ответ, на который вы ссылаетесь, в значительной степени соответствует тому, что вам нужно сделать. Ссылки на членство минимальны, и вы легко сможете изменить их на удостоверение личности.
- person Simon Halsey   schedule 18.08.2014
comment
Оказывается, вы правы, но после нескольких часов копания я нашел этот< /а>. Разве это не поможет в ситуации без каких-либо манипуляций с базой данных?
- person GregoryHouseMD   schedule 18.08.2014
Ответы (1)
Разобрался, как это сделать. При входе в систему я называю это:
var key = user.UserName;
var timeOut = new TimeSpan(0, 0, HttpContext.Current.Session.Timeout, 0, 0);
HttpContext.Current.Cache.Insert(key, Session.SessionID, null, DateTime.MaxValue, timeOut, CacheItemPriority.NotRemovable, null);
И это в Global.asax
if (Session["username"] != null)
{
var cacheKey = Session["username"].ToString();
if ((string) HttpContext.Current.Cache[cacheKey] != Session.SessionID) LogOut();
}
person
GregoryHouseMD
schedule
14.09.2015
Где в Global.asax? В каком методе?
- person Vijay Patel; 17.08.2017
Сейчас не помню, могу проверить через пару часов.
- person GregoryHouseMD; 17.08.2017