ajax判断用户不能重复登录,有什么防止用户重复登录的方法?

找到一个解决办法:

原理是在session中保存LastLoginDate的时间值。操作时再跟提取的Membership.GetUser().LastLoginDate值进行比较,如果不一样就把这个登录注销掉。这样就保证只有以这个账户最后登录的用户,之前登录的都被注销掉。

具体做法是使用login控件登录,login控件名称是Login1,添加Login1_LoggedIn事件:

Code Snippet

protected void Login1_LoggedIn(object sender, EventArgs e)

{

Session["mySessionTime"] = Membership.GetUser(Login1.UserName).LastLoginDate;

}

然后我是在master页面的Page_Load事件中判断:

Code Snippet

protected void Page_Load(object sender, EventArgs e)

{

if (Session["mySessionTime"] == null || Membership.GetUser() == null || (DateTime)Session["mySessionTime"] != Membership.GetUser().LastLoginDate)

{

FormsAuthentication.SignOut();

}

}

看似没有什么问题,请各位看看有没有漏洞或有没有其他更好的办法。

补充一下,这个方法即使在登录时勾选了“下次记住我”也能让该用户旧登录失效。即保存在cookie内的登录信息失效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值