Как удалить конкретную сессию в asp.net? - PullRequest
37 голосов
/ 23 января 2012

Я столкнулся с проблемой. Я создал две сессии:

  1. Session["userid"] = UserTbl.userid;
  2. Session["userType"] = UserTbl.type;

Я знаю, как удалить сеансы, используя Session.clear(). Я хочу удалить сеанс "userType".

Как удалить определенный сеанс?

Ответы [ 6 ]

68 голосов
/ 23 января 2012
Session.Remove("name of your session here");
43 голосов
/ 23 января 2012

Нет ничего похожего на контейнер сеанса, поэтому вы можете установить его как ноль

, а вместо этого вы можете установить отдельный элемент сеанса как ноль или ""

как Session["userid"] = null;

29 голосов
/ 23 января 2012

вы можете использовать метод Session.Remove (); Session.Remove

Session.Remove("yourSessionName");
5 голосов
/ 23 января 2012

Существует множество способов обнулить сеанс в ASP.NET. По сути, сессия - это cookie, установленный в браузере клиента и в ASP.NET, его имя обычно ASP.NET_SessionId. Таким образом, теоретически, если вы удалите этот файл cookie (что с точки зрения браузера означает, что вы устанавливаете дату его истечения на какую-то дату в прошлом, поскольку файлы cookie не могут быть удалены разработчиками), то вы потеряете сеанс на сервере. Другой способ, как вы сказали, это использовать метод Session.Clear(). Но лучший способ - установить другой нерелевантный объект (обычно значение null) в сеансе в соответствии с ключом. Например, чтобы обнулить Session["FirstName"], просто установите его на Session["FirstName"] = null.

1 голос
/ 09 мая 2018

Единственный способ удалить сессии - установить его в ноль;

Session["your_session"] = null;
0 голосов
/ 14 июня 2019

if (HttpContext.Current.Session ["sessionname"]! = Null) HttpContext.Current.Session.Remove ("sessionname");

у меня работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...