Путь к delete
куки в клиентском браузере заключается в override
их, устанавливая значение expires
в дату в прошлом.
Когда вы используете этот код:
Response.Cookies.Remove("userName");
вы только удаляете куки на сервере, что означает, что они не отправлены клиенту.Это означает, что старый cookie на клиенте сохраняется.
Чтобы удалить старый cookie:
HttpCookie cookie = new HttpCookie("olduserName");
cookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(cookie);
Здесь 'oldusername'
содержит предыдущее значение 'username'
.
Редактировать :
Другой способ заключается в том, чтобы присвоить вашему файлу cookie имя, которое никогда не меняется, затем вы можете просто переопределить его новым значением при изменении имени пользователя.
Edit2 :
Я действительно сделал ту же ошибку, что и вы, вы должны использовать:
Response.Cookies.Set(cookie);
При использовании Add
может быть более одного Cookie с тем же именем.Скорее всего, это ваша проблема (извините, я раньше этого не видел).
Edit2 :
Только что увидел эту строку сейчас:
Response.Redirect("~/Order.aspx");
Вы перенаправляете!Тогда куки не будут установлены на клиенте.
Вместо этого вы должны установить куки в "~ / Order.aspx".