标题:[求助]退出后怎么清空session
取消只看楼主
fenwuxue
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-4-10
 问题点数:0 回复次数:1 
[求助]退出后怎么清空session
小弟我做了一个注销的连接,连接到登陆界面。
因为我写了个判断只能单用户登陆,所以注销后,要清空session。
在Login.aspx.cs中写了:
protected void Page_Load(object sender, EventArgs e)
{
Session.Contents.Remove("sID"); //用户名
Session.Contents.Remove("sPassWord"); //密码
Session.Contents.Remove("MBR_NM"); //真实性名
Session.Contents.Remove("User"); //判断用户是否登陆过
}
但是当我再次登陆时,系统提示我已经登陆过。
请教大家怎么改哈?

另外请教大家怎么在.cs中写判断邮箱的格式是否正确。
谢谢。
搜索更多相关主题的帖子: session 
2007-04-10 15:09
fenwuxue
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-4-10
得分:0 

也不行哈,给你看我的源文件


//------------------------------------------------------------------------------
//
// 系统 : 人力资源管理系统
// 文件名 : Login.aspx.cs
// 对象类型 : DB访问组件
// 类名 : Login
// 机能概要 : 用户登录应用
// 作成者 : 颠峰软件
// 版本 : 0.0.0.1
//
//-----------------< 修改记录:修改日/修改者/修改内容/版本 >----------------------
// 2007.3.22/ZB/新建/0.0.0.1
//
//-----------------< 修改记录:修改日/修改者/修改内容/版本 >----------------------

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Sofmit.HRIS.DBEntity;
using Sofmit.HRIS.DBMeta;
using Sofmit.HRIS.DBAccess;
using Sofmit.HRIS.Log;
using Sofmit.HRIS.Web.BasePage;
using Sofmit.HRIS.Util;
using Sofmit.HRIS.Business;

public partial class Login : Loginbase
{
/// <summary>
/// Login页面初始化
~Login() { }

/// </summary>
/// <Autor>ZB</Autor>
/// <param name="sender"></param>
/// <param name="e"></param>

protected void Page_Load(object sender, EventArgs e)
{
Session.Contents.Remove("sID");
Session.Contents.Remove("sPassWord");
Session.Contents.Remove("MBR_NM");
Session.Contents.Remove("User");
//Session["sID"] = "";
//Session["sPassWord"] = "";
//Session["MBR_NM"] = "";
//Session["User"] = "";
//Session.Abandon();
}


protected void submit_Click1(object sender, EventArgs e)
{
if(IsPostBack)
{
AdminBusiness inst = new AdminBusiness();
MST_Member mem = new MST_Member();

// 从页面取用户ID值和密码值
this.strName= username.Text;
this.strPwd = password.Text;

mem.MBR_UserNM = this.strName;
mem.MBR_Pswd = this.strPwd;


// 用户名不能为空
if (username.Text.Length == 0)
{
this.Warn1.Text = Message.ERR_0001;
return;
}
// 密码不能为空
if (password.Text.Length == 0)
{
this.Label1.Text = Message.ERR_0003;
return;
}
// 此用户不存在

if (inst.IsRightUser(mem) == null)
{
this.Warn1.Text = Message.ERR_0002;
return;
}

DataSet ds;
ds = inst.LoginBusiness(mem);
if (ds != null)
{
// 写日志
Session["sID"] = username.Text;
Session["sPassWord"] = password.Text;
Session["MBR_NM"] = ds.Tables[0].Rows[0][Member_META.N_MBR_NM].ToString();
String type = ds.Tables[0].Rows[0][Member_META.N_MBR_Auth].ToString();
// 生成Key
string sKey = username.Text + "_" + password.Text;
// 得到Cache中的给定Key的值
string sUser = Convert.ToString(Cache[sKey]);
// 检查是否存在
if (sUser == null || sUser == String.Empty)
{
// Cache中没有该Key的项目,表名用户没有登录,或者已经登录超时
// 注意下面使用的TimeSpan构造函数重载版本的方法,是进行是否登录判断的关键。System.Web.HttpContext.Current.Session.Timeout
TimeSpan SessTimeOut = new TimeSpan(0, 0, 5 , 0, 0);
HttpContext.Current.Cache.Insert(sKey, sKey, null, DateTime.MaxValue, SessTimeOut,
System.Web.Caching.CacheItemPriority.NotRemovable, null);
Session["User"] = sKey;
// 首次登录,您可以做您想做的工作了。

}
else
{
// 在 Cache 中发现该用户的记录,表名已经登录过,禁止再次登录
//Warn1.Text = "<h5 style='color:red'>抱歉,您好像已经登录了呀:-(</h5>";
Response.Write("<script>alert('抱歉,您好像已经登录了呀:-(');</script>");
return;
}

if (type == "01")
{
// 跳到管理员主页
Response.Redirect("IndexAdmin.aspx");
}
else if (type == "02")
{
// 跳到普通用户主页
Response.Redirect("MemberMain.aspx");
}
else
// 跳到数据录入人员主页
Response.Redirect("InsertMain.aspx");
}

}
}


}


2007-04-10 15:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-130744-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.345037 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved