单点登陆时只要一登陆再次登陆就提示已经登陆 怎么办噢 !

aizhangtao 2008-11-25 11:25:34
先把登陆时的用户名密码放到SESSION CACHE 中。

// 生成Key
string sKey = this.txtname.Text + "_" + this.txtpassword.Text;
// 得到Cache中的给定Key的值
string sUser = Convert.ToString(Cache[sKey]);
// 检查是否存在
if (sUser == null || sUser == String.Empty)
{
// Cache中没有该Key的项目,表名用户没有登录,或者已经登录超时
// 注意下面使用的TimeSpan构造函数重载版本的方法,是进行是否登录判断的关键。
TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
HttpContext.Current.Cache.Insert(sKey, sKey, null, DateTime.MaxValue, SessTimeOut,
System.Web.Caching.CacheItemPriority.NotRemovable, null);
Session["User"] = sKey;
// 首次登录,您可以做您想做的工作了。
Msg.Text = "<h4 style='color:red'>嗨!欢迎您访问<a href='Welcome.aspx'>Welcome.aspx";
Msg.Text += "</a>,祝您浏览愉快!:)</h4>";
}
else
{
// 在 Cache 中发现该用户的记录,表名已经登录过,禁止再次登录
Msg.Text="<h4 style='color:red'>抱歉,您好像已经登录了呀:-(</h4>";
return;
}

然后在注销的时候把所有的SESSION CACHE 都销毁 了。
Session.Abandon();

System.Web.HttpContext.Current.Session.RemoveAll();

Cache.Remove("sKey");

可再次登陆的时候还是提示已经登陆。 非得等过一段时间(我也没测要等多久)再登陆才行。

我不是在注销的时候把SESSION CACHE 都销毁了么。怎么还是不能登陆呢。

哪位高手帮看看吧。我都做两天了。郁闷
...全文
233 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
aizhangtao 2008-12-04
  • 打赏
  • 举报
回复
用COOKIES 也不行啊..



我到别的电脑上再登陆. COOKIES 不就没用了..?
zlb789 2008-11-25
  • 打赏
  • 举报
回复
Request.cookies["Name"].value 取值
wo594261 2008-11-25
  • 打赏
  • 举报
回复
Response.Cookies["name"].Value=name.ToString();
aizhangtao 2008-11-25
  • 打赏
  • 举报
回复
可是我不会用COOKIES 谁教一下啊啊。。。
jiang_jiajia10 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yfqvip 的回复:]
用Cookies,不要设置过期时间,表示浏览器进程,浏览器关闭cookies也随之释放。
[/Quote]
同意
ysj52zqq 2008-11-25
  • 打赏
  • 举报
回复
Cookies
同意楼上
我是用Cookies做的
满衣兄 2008-11-25
  • 打赏
  • 举报
回复
用Cookies,不要设置过期时间,表示浏览器进程,浏览器关闭cookies也随之释放。
哈哈 2008-11-25
  • 打赏
  • 举报
回复
1.确认 Session.Abandon();  这句是否真的执行到了
2.使用COOKIE
qinhl99 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yfqvip 的回复:]
用Cookies,不要设置过期时间,表示浏览器进程,浏览器关闭cookies也随之释放。
[/Quote]

//支持!
xx_shang 2008-11-25
  • 打赏
  • 举报
回复
关注。。。
aizhangtao 2008-11-25
  • 打赏
  • 举报
回复
我发现个问题噢

用COOKIES 的话。 如果我在不同的机器上COOKIES不就。。。。。

在另一台机器上登陆的时候不是又会有一个COOKIES 么。

COOKIES 不是保存在客户端的么。 那我在别的机器上怎么怎么你登陆了没有噢。

那我不又可以登陆了?

aizhangtao 2008-11-25
  • 打赏
  • 举报
回复
我发现个问题噢

用COOKIES 的话。 如果我在不同的机器上COOKIES不就。。。。。

在另一台机器上登陆的时候不是又会有一个COOKIES 么。

COOKIES 不是保存在客户端的么。 那我在别的机器上怎么怎么你登陆了没有噢。

那我不又可以登陆了?

62,269

社区成员

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

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

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

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