用户登录注销问题!

aimyray 2010-07-13 10:10:23
采用cookie机制来解决用户登录和注销,单独采用了一个注销页面logout.aspx
public partial class Logout : System.Web.UI.Page
{
HttpCookie loginUsersCookie;
protected void Page_Load(object sender, EventArgs e)
{
loginUsersCookie = Request.Cookies["LoginUser"];

if (loginUsersCookie != null)
{
loginUsersCookie.Expires = DateTime.Now.AddDays(-1);
Response.SetCookie(loginUsersCookie);

}
Response.Redirect("login.aspx");
}

index.aspx页面上有个注销按钮,按钮事件:Response.Redirect("logout.aspx");
单击该按钮后会跳转到login.aspx页面,但是如果此时我在地址栏直接输入index.aspx页面的url地址,仍是可以进入的,刷新一次后,就跳转到login.aspx页面,但是地址栏显示的却是index.asp的地址。
下面是index.aspx.cs对用户是否登录的一个判断
HttpCookie loginUsersCookie;
protected void Page_Load(object sender, EventArgs e)
{
loginUsersCookie= Request.Cookies["LoginUser"];

if (loginUsersCookie!= null)
{
this.Label3.Text = tokenCookie.Values["TokenID"];
this.Label4.Text = tokenCookie.Values["UserAccount"];
this.Label5.Text = tokenCookie.Values["IsLogined"];
}
else
{
this.Label3.Text = "没有cookie";
Response.Redirect("login.aspx");
}
}
...全文
222 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
leejelen 2010-07-13
  • 打赏
  • 举报
回复
学习了!
aimyray 2010-07-13
  • 打赏
  • 举报
回复
包括2楼梯到到的后退问题也一并解决了!!
aimyray 2010-07-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q107770540 的回复:]
C# code

//清空缓存
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddMonths(-120);
Response.Expires = 0;


……
[/Quote]
这段代码应该是添加在page_load中,我添加的位置弄错了,不好意思哈,问题已解决!!谢谢!!
随风落梦 2010-07-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 aimyray 的回复:]
引用 3 楼 aimyray 的回复:
引用 1 楼 q107770540 的回复:
C# code

//清空缓存
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddMonths(-120);
Response.Expires = 0;


……

试过了,问题还存在!但是用……
[/Quote]
这个就是和缓存联系起来的
aimyray 2010-07-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 aimyray 的回复:]
引用 1 楼 q107770540 的回复:
C# code

//清空缓存
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddMonths(-120);
Response.Expires = 0;


……

试过了,问题还存在!但是用户关闭ie则是正常的,因为cookie失效……
[/Quote]

但是在对应的前台页面中添加 <meta http-equiv="Expires" content="0"/>
<meta http-equiv="Cache-Control" content="no-cache"/>
<meta http-equiv="Pragma" content="no-cache"/>就可以了,这又是为何啊?
lw402365015 2010-07-13
  • 打赏
  • 举报
回复
关注中~~~~~~~
aimyray 2010-07-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q107770540 的回复:]
C# code

//清空缓存
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddMonths(-120);
Response.Expires = 0;


……
[/Quote]
试过了,问题还存在!但是用户关闭ie则是正常的,因为cookie失效,但是我写的注销的也是让cookie失效,为什么会出现这个问题呢?
q107770540 2010-07-13
  • 打赏
  • 举报
回复

//清空缓存
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddMonths(-120);
Response.Expires = 0;


Response.CacheControl = "no-cache";
Response.AddHeader("pragma", "no=cache");
Response.Redirect("~/Login.aspx");
yasire 2010-07-13
  • 打赏
  • 举报
回复
缓存。
防止后退:

Response.Buffer = true;
Response.ExpiresAbsolute = DateTime.Now.AddSeconds(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";

不明真相,等待高手!

62,073

社区成员

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

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

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

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