asp.net关于注销的问题,很简单的代码,却查不出原因

[复制链接]
查看11 | 回复4 | 2010-2-1 11:37:14 | 显示全部楼层 |阅读模式
看到很多人回答这个问题,就用楼主的代码,或者用horsoner的也行,之所以出现楼主的那个问题就像yissyo 说的那样,页面做了Cache,楼主可以按照yissyo 的方法在b.aspx页面加上不需要缓存的说明方法还有多种,可以自己去研究一下,像这种每个子页需要进行登陆验证的情况最好还是使用一个HttpModule来进行处理,代码复用性非常好...
回复

使用道具 举报

千问 | 2010-2-1 11:37:14 | 显示全部楼层
可能是缓存,中加上试试 登录验证你应该使用HttpModule
回复

使用道具 举报

千问 | 2010-2-1 11:37:14 | 显示全部楼层
Session.Remove("user");Load事件里写if(!IsPostBack){if (Session["user"] == null && Session["user"] =="")
{
Response.Write("session值为null!非法登陆!");
}
else
{
Response.Write("session值为"+Session["user"].ToString()+",合法登陆!");
}}
回复

使用道具 举报

千问 | 2010-2-1 11:37:14 | 显示全部楼层
FormsAuthentication.SignOut();Session.Clear();Session.Abandon();Response.Clear();Response.Redirect("Login.aspx", false);Response.End();
回复

使用道具 举报

千问 | 2010-2-1 11:37:14 | 显示全部楼层
你要判断下if(IsPostBack){Session["user"] = "xxx";Response.Redirect("b.aspx");}Default.aspx:using System;namespace LogoutDemo{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void BtnLogin_Click(object sender, EventArgs e)
{
Session["user"] = "xxx";
Response.Redirect("B.aspx");
}
}}B.aspx:using System;namespace LogoutDemo{
public partial class B : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["user"] == null)
{
Response.Write("session值为null!非法登陆!");
}
else
{
Response.Write("session值为" + Session["user"].ToString() + ",合法登陆!");
}
}
protected void BtnLogout_Click(object sender, EventArgs e)
{
Session["user"] = null;
Response.Redirect("Default.aspx");
}
}}运行后点击登录按钮,跳转到B页面,显示“session值为xxx,合法登陆!”,然后点击注销按钮,回到Default页面,然后再在地址栏将Default改为B,敲回车,显示“session值为null!非法登陆!”;楼主的问题不存在。你是否有笔误? 另外建议楼主使用IE做默认浏览器。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行