网站会员登录,在这个页面登录后,打开一个新页面是未登录状态?

epui2008 2014-11-27 10:29:19
如题,正常的情况应该是:登录一个网站后,随便打开一个网站页面,都会显示登录状态,除非超时

我是用session+cookies 保存的,请问可能哪里有问题呢
...全文
797 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
使用 http 调试器跟踪你的“登陆页面”跟在同一个浏览器进程上“随便打开一个页面”时,对比一下前一个页面返回时的消息头中 AspnetSessionId 的值跟后一个页面发送请求和返回响应时消息头中 AspnetSessionId 的值是否完全一致。如果不一致,说明登录页面后台asp.net程序写Session集合有错误,或者根本没有保存数据到Session。一旦你保存数据到Session集合,这个cookie值就不再会改变了。 基本上,当你打开新页面或者明确点击“刷新”按钮来刷新页面是,浏览器出问题的可能性比较小,你的程序(就那么2、3行代码的地方)出问题的可能性很大。极个别诡异的嵌入式 WebKit 浏览器不支持登录时保存cookie。
wuhg_2286783337 2014-11-28
  • 打赏
  • 举报
回复
会员登录使用Session记录登录信息使打开的新页面处于登录状态示例 protected void btnLoad_Click(object sender, ImageClickEventArgs e) { HttpCookie cookie = Request.Cookies["CheckCode"]; if (String.Compare(cookie.Value, txtVali.Text, true) != 0) { Response.Write("<script lanuage=javascript>alert('验证码错误');location='javascript:history.go(-1)'</script>"); } else { DataSet ds = DB.reDs("select * from tb_HuenLian where UserName='" + txtUid.Text.Trim() + "' and PassWord='" + txtPwd.Text.Trim() + "'"); int i = this.checkLogin(txtUid.Text, txtPwd.Text); if (i > 0) { Session["id"] = ds.Tables[0].Rows[0][0].ToString(); Session["UserName"] = this.txtUid.Text;//记录用户名 Session["PassWord"] = this.txtPwd.Text; Page.Response.Redirect("Yonghu.aspx");//跳转到登录页面 } else { Response.Write("<script lanuage=javascript>alert('用户名称或密码错误!');location='javascript:history.go(-1)'</script>"); } } }//codego.net/tags/11/1/ public int checkLogin(string loginName, string loginPwd) { SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]); SqlCommand myCommand = new SqlCommand("select count(*) from tb_HuenLian where UserName=@loginName and PassWord=@loginPwd", con); myCommand.Parameters.Add(new SqlParameter("@loginName", SqlDbType.NVarChar, 20)); myCommand.Parameters["@loginName"].Value = loginName; myCommand.Parameters.Add(new SqlParameter("@loginPwd", SqlDbType.NVarChar, 50)); myCommand.Parameters["@loginPwd"].Value = loginPwd; myCommand.Connection.Open(); int i = (int)myCommand.ExecuteScalar(); myCommand.Connection.Close(); return i; }
huaneramn 2014-11-28
  • 打赏
  • 举报
回复
技术不到家。。。。。。。。。。。。。。。。。。。。
於黾 2014-11-28
  • 打赏
  • 举报
回复
你应该先说你用什么浏览器调试的 先确定IE下有没有问题,而不是一开始就用非主流的浏览器来测试你的网站
threenewbee 2014-11-27
  • 打赏
  • 举报
回复
客户端缓存了网页,导致网页没有正常刷新。具体用fiddler调试。
yaotomo 2014-11-27
  • 打赏
  • 举报
回复
看看你的代码
epui2008 2014-11-27
  • 打赏
  • 举报
回复
新打开一个标签页
闲游四疯 2014-11-27
  • 打赏
  • 举报
回复
你得先看是 session空还是cookie空 浏览器新页面 是新开一浏览器还是标签页?新开浏览器是新会话的..估计是session空的可能性大点

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧