关于C# 防止用户重复登录问题

Tzspirit 2010-12-13 03:38:10
 
if (user != null && user.UserStateID == 1 )
{
HttpContext.Session.Timeout = 300;

//将当前登陆用户放到Session中
HttpContext.Session["LoginUser"] = user;

//标识当前 Session
HttpContext.Session["LoginIdentity"] = DateTime.Now.ToString();

if (HttpContext.Application["LoginSessionList"] == null)
{
HttpContext.Application["LoginSessionList"] = new List<HttpSessionStateBase>();
}

List<HttpSessionStateBase> loginSessionList = HttpContext.Application["LoginSessionList"] as List<HttpSessionStateBase>;

HttpSessionStateBase session = loginSessionList.Find(p => ((User)p["LoginUser"]).ID == user.ID);

if (session != null)
{
session["LoginUser"] = user;
session["LoginIdentity"] = DateTime.Now.ToString();
}
else
{
loginSessionList.Add(HttpContext.Session);
}

return Redirect("/Index/IndexText");
}
else
{
//登录失败
return Redirect("/Index/Login");
}



为什么只能限制一台机器不能重复登录一个用户 我想限制当前账户登录了 任何浏览器不能登录或者强制下线
该怎么办 求教
...全文
428 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tzspirit 2010-12-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 net_lover 的回复:]
使用Cache比Application更灵活。
[/Quote]

那请问 怎么用呢
还有 我刚刚上面补充一行代码


ERP.DAL.User user = new User();
孟子E章 2010-12-13
  • 打赏
  • 举报
回复
使用Cache比Application更灵活。在Session_OnEnd里面删除用户的id。最好采用数据库的方法比较好些
Tzspirit 2010-12-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 net_lover 的回复:]
HttpContext.Application["user"] = new ArrayList();

用户登录的时候 user.Add("登录用户的id");

判断
user = HttpContext.Application["user"] as ArrayList;
if user.Contains(xx)
[/Quote]

先谢谢 我去试试
孟子E章 2010-12-13
  • 打赏
  • 举报
回复
HttpContext.Application["user"] = new ArrayList();

用户登录的时候 user.Add("登录用户的id");

判断
user = HttpContext.Application["user"] as ArrayList;
if user.Contains(xx)
Tzspirit 2010-12-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fengyarongaa 的回复:]
引用 2 楼 net_lover 的回复:

HttpContext.Application["LoginSessionList"]存用户的id或者登录名,而不是Session信息

lz 这不是购物车
[/Quote]

能说的详细点么 谢谢 我刚学的这个
Tzspirit 2010-12-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 net_lover 的回复:]
HttpContext.Application["LoginSessionList"]存用户的id或者登录名,而不是Session信息
[/Quote]
我是小白 能说的在具体点么 谢谢
hurui198802 2010-12-13
  • 打赏
  • 举报
回复
笨办法,数据库用户表加个字段来识别该用户是否登录了
ycproc 2010-12-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 net_lover 的回复:]

HttpContext.Application["LoginSessionList"]存用户的id或者登录名,而不是Session信息
[/Quote]
lz 这不是购物车
孟子E章 2010-12-13
  • 打赏
  • 举报
回复
HttpContext.Application["LoginSessionList"]存用户的id或者登录名,而不是Session信息


62,269

社区成员

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

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

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

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