保存cookie时会话丢失
本文关键字:会话 cookie 保存 | 更新日期: 2023-09-27 18:21:59
成功登录后,我想保存一个包含用户名的cookie。
cookie正确保存并正确加载用户名,但会丢失会话!
检索用户名的代码是:
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。
谢谢,Fran
我最近看到一篇文章,认为页面名称中的下划线可能会导致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中使用子密钥。