HttpSessionState Где, как, преимущества? - PullRequest
1 голос
/ 17 июня 2010

Вы видите код ниже, как я использовал переменную сеанса;Итак, три вопроса:

  1. Где они хранятся?(На стороне сервера или клиента)
  2. Они уникальны для каждого посетителя веб-страницы?
  3. Могу ли я удалить его, используя ajax или простой js-код, когда моя работа будет завершена?или он будет удален автоматически ..?

.

sbyte[][] arrImages = svc.getImagesForFields(new String[] { "CustomerName", "CustomerSurName" });

Dictionary<string, byte[]> smartImageData = new Dictionary<string, byte[]>();
int i = 0;
foreach (sbyte[] bytes in arrImages)
{
    smartImageData.Add(fieldNames[i], ConvertToByte(bytes));
    i++;
}

Session.Add("SmartImageData", smartImageData);

Ответы [ 4 ]

4 голосов
/ 17 июня 2010

Подробнее о сессиях здесь . Чтобы ответить на ваши вопросы:

  1. Зависит от вашей конфигурации (в процессе, Session State Server и т. Д.), Но всегда на стороне сервера.
  2. Да, каждый посетитель получает уникальный файл cookie.
  3. Вы можете удалить его на стороне клиента, удалив файл cookie сеанса (обычно ASP.NET_SessionId), или на стороне сервера, вызвав Session.Abandon(). Кроме того, время сеанса истекает после определенного (настраиваемого) периода бездействия.
0 голосов
/ 17 июня 2010

Сессия обычно хранится на сервере (в зависимости от конфигурации вашего сервера / приложения).Каждому уникальному соединению браузера назначается идентификатор сеанса, который сервер использует для привязки клиента к уникальному сеансу сервера при последующих подключениях.Идентификатор сеанса передается клиенту для хранения в виде файла cookie или в качестве параметра, присоединенного к каждому URL-запросу к серверу.

Он используется как средство сохранения состояния клиента на сервере между вызовами HTTP.

Сеанс истекает через настраиваемое время бездействия.Однако в .NET вы можете вызвать Session.Abandon (), чтобы завершить текущий сеанс.

0 голосов
/ 17 июня 2010

Информация о состоянии сеанса хранится на сервере, а не на стороне клиента.Когда сеанс истекает, эта информация сеанса удаляется полностью и автоматически.Вы можете изменить срок действия сессии через файл web.config.Данные сеанса уникальны для каждого пользователя.Вы всегда можете использовать его, используя ajax, или изменить его, или даже удалить.

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

0 голосов
/ 17 июня 2010

Переменные сессии хранятся на сервере?Вы можете настроить другой механизм управления состоянием (например, база данных).

Они уникальны для каждого сеанса пользователя.Он будет удален после истечения времени сеанса.

...