Под другим местоположением вы имеете в виду попытку входа на 2 разных устройства?
Так что, если я вошел в систему на своем компьютере, а затем попытался войти на своем телефоне, телефон не сможет войти в систему иследует выйти из системы?
Если это правильно, то:
При запуске сеанса пользователя
- , если пользователь уже вошел в систему, выйдите из него
- сохранить информацию для входа (IPAddress) в состояние БД или приложения
if (System.Web.HttpContext.Current.Application[System.Web.HttpContext.Current.User.Identity.Name] != null)
{
System.Web.HttpContext.Current.Response.Redirect("http://<server>/_layouts/SignOut.aspx");
}
else
{
System.Web.HttpContext.Current.Application[System.Web.HttpContext.Current.User.Identity.Name] = System.Web.HttpContext.Current.Request.UserHostAddress;
}
В конце сеанса пользователя
- удалить информацию для входа (IPAddress) изСостояние БД или приложения
if (System.Web.HttpContext.Current.Application[System.Web.HttpContext.Current.User.Identity.Name] != null && System.Web.HttpContext.Current.Request.UserHostAddress != System.Web.HttpContext.Current.Application[System.Web.HttpContext.Current.User.Identity.Name])
{
System.Web.HttpContext.Current.Application.Remove(System.Web.HttpContext.Current.User.Identity.Name);
}
Вы можете столкнуться с проблемой, если у вас длинный тайм-аут сеанса и вы попытаетесь подключиться к другому устройству до того, как исходный сеанс будет уничтожен.