Я нажимаю кнопку обновления, которая должна перезапустить сеанс:
protected void btnRefresh_Click(object sender, EventArgs e)
{
HttpContext.Current.Session.Abandon();
HttpCookie mycookie = new HttpCookie("ASP.NET_SessionId");
mycookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(mycookie);
LblSessionID.Text = HttpContext.Current.Session.SessionID+
" test btnRefresh_Click";
LblIsNewSession.Text = Session.IsNewSession.ToString();
}
Но когда кнопка нажата, значение SessionID в LblSessionID
по-прежнему отображает старое значение, но другая метка LblIsNewSession
покажет его как истинное для IsNewSession. Затем LblSessionID
будет отражать фактическое значение SessionID, когда я использую элемент управления asp.net (например, раскрывающийся список), который имеет autopostback="true"
, и оттуда сохраняется SessionID.
Я использую global.asax
Любая идея, почему LblSessionID
ведет себя не так, как должно, и ждет следующей обратной передачи, чтобы начать отражать фактическое значение?
Когда я запускаю веб-приложение, проблема та же самая - LblSessionID
показывает другое значение, а затем изменяется после первой обратной передачи и оттуда остается прежним.