DbTalwar Ответов: 1

Я хочу, чтобы сделать сеанс нулевым или ясным в универсальном обработчике


У меня есть созданный сеанс, я использую кнопку на стороне клиента, чтобы вызвать универсальный обработчик для удаления сеанса.

Что я уже пробовал:

Я попробовал IRequireSessionState, но он не работает, чтобы сделать сеанс нулевым.'

public class SessionExit : IHttpHandler, IRequiresSessionState
    {

        public void ProcessRequest(HttpContext context)
        {
            //If user clicks OK on Exit conformation box.
            if (context.Session["Chat"] != null)
            {
                context.Session["Chat"] = null;
                context.Session.Abandon();
                context.Response.Redirect("~/Default.aspx");
            }
        }

F-ES Sitecore

Что "не работает"? Является ли context. Session нулевым в вашем коде обработчика? Или это не делает объект сеанса нулевым для последующих запросов? Или не делать переменную сеанса" чат " нулевой на последующих страницах?

DbTalwar

это не делает объект сеанса нулевым для последующего request.it перенаправляется на страницу по умолчанию, но когда я снова вхожу в систему с другими значениями, он принимает только старые входные данные.

F-ES Sitecore

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

1 Ответов

Рейтинг:
0

Richard Deeming

Попробуй:

public void ProcessRequest(HttpContext context)
{
    context.Session.Clear();
    context.Session.Abandon();
    context.Response.Redirect("~/Default.aspx");
}