[英]Session lost when saving cookie
成功登录后,我想保存一个包含用户名的cookie。
cookie正确保存并正确加载用户名但丢失会话!
retreive用户名的代码是:
if (Request.Cookies["userName"] != null)
{
txtEmail.Text = Request.Cookies["username"].Value;
chkRemember.Checked = true;
}
保存用户名的代码是:
HttpCookie aCookie = new HttpCookie("username");
aCookie.Value = txtEmail.Text;
aCookie.Expires = DateTime.Now.AddYears(5);
Response.Cookies.Add(aCookie);
非常感谢任何帮助,谢谢
有点狂野,但你是否从https转向http? 例如,登录表格是https,以下页面是http
如果是这样,大多数浏览器将丢弃会话cookie。
谢谢,弗兰
我最近看到一篇文章,建议页面名称中的下划线可能会导致cookie出现问题,我没有考虑过这个问题,但可能值得一试。
或者,如果用户不选择记住,您是否清除了Cookie?
我最近在MSDN上看到了一个旧示例,显示了删除会话的删除方法... 阅读文章 。
如果是这样,请确保仅删除登录的cookie,否则您可能会丢失包含sessionid的cookie。
(非常)快速翻译成文章代码的csharp:
for (int i = 0; i < limit; i++)
{
cookieName = Request.Cookies[i].Name;
aCookie = new HttpCookie(cookieName);
aCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(aCookie);
}
解决方案是添加对cookie名称的检查。
for (int i = 0; i < limit; i++)
{
cookieName = Request.Cookies[i].Name;
if (cookieName == "username")
{
aCookie = new HttpCookie(cookieName);
aCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(aCookie);
}
}
另外请不要忘记您可以在cookie中使用子键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.