в моем приложении. есть механизм входа в систему, который сохраняет куки с информацией о пользователе, который только что вошел в систему
private void CreateCookie(LoginEventArgs args)
{
HttpCookie cookie = new HttpCookie("user");
cookie.Values["name"] = args.User_Name;
cookie.Values["id"] = args.ID;
cookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(cookie);
}
На моей главной странице загрузки я проверяю, существует ли этот файл cookie:
HttpCookie cookie = Request.Cookies["user"] ;
if( (cookie != null) && (cookie.Value != ""))
{
if (Session["user"] == null)
Login_Passed(this, new LoginEventArgs(cookie.Values["name"].ToString(), int.Parse(cookie.Values["id"])));
}
сейчас, если я вхожу в систему (создаю куки), закрываю браузер и запускаю мое приложение. опять печенье
существует, его значения верны, и пользователь «автоматически» вошел в систему.
если я впервые перенаправлю на другую страницу контента со страницы запуска контента
значения куки также не повреждены,
проблема в том, что когда я перенаправляю обратно на другую страницу контента во второй раз,
главная страница загружается, делает проверку
cookie существует, но значения удалены ...
есть идеи, почему это происходит?
Кстати, возможно, причиной этой проблемы может быть выход из системы:
при выходе из системы я создаю cookie с тем же именем, срок действия которого истекает 1 день назад.
private void Remove_Cookie()
{
HttpCookie cookie = new HttpCookie("user");
cookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(cookie);
}
в случае, описанном мной, я формально не выхожу из системы, я просто заканчиваю свое приложение, так что это не должно
иметь какой-либо эффект.