В ASP.NET, когда должен, я использую Сессию. Ясный (), а не Сессия. Отказ ()?

113
задан abatishchev 4 December 2011 в 15:43
поделиться

3 ответа

Session.Abandon() уничтожает сессию и , событие Session_OnEnd инициировано.

Session.Clear() всего удаляет все значения (содержание) от Объекта. Сессия с тем же ключом все еще жива.

Так, если Вы используете Session.Abandon(), Вы проигрываете ту определенную сессию, и пользователь получит новый сеансовый ключ. Вы могли использовать его, например, когда пользователь выходит из системы.

Использование Session.Clear(), если Вы хотите это пользователь, остающийся на той же сессии (если Вы не хотите, чтобы пользователь повторно вошел в систему, например) и сбрасывают всю сессию определенные данные.

167
ответ дан Daniel 24 November 2019 в 02:43
поделиться

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

public static void RemoveEverythingButUserInfo()
{
    foreach (String o in HttpContext.Current.Session.Keys)
    {
        if (o != "UserInfoIDontWantToAskForAgain")
            keys.Add(o);
    }
}
0
ответ дан MatthewMartin 24 November 2019 в 02:43
поделиться

Я все еще не уверен, что это за реальный пример, где вы бы использовали Session.Abondon () , Session.Clear () .

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

5
ответ дан 24 November 2019 в 02:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: