• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

小慧

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

防止同一用户同时登陆

防止同一用户同时登陆

protected void btn_OK_Click(object sender, EventArgs e)
        {//登录
            String code = CodeTest.Code;
            if (!this.code.Text.Trim().Equals(code))
            {
                Response.Write("<script>alert('验证码错误!');</script>");
                return;
            }
            UserEntity user = UserBiz.LoginUser(name.Text, MD5Biz.Get_MD5_Method3(pwd.Text));
            if (user == null)
            {
                Response.Write("<script>alert('用户名或密码错误!')</script>");
                return;
            }
            else
            {
                string ip = GetClientIPBiz.GetClientIP();
                string cookieName = Request.Cookies["Username"] == null ? "" : Request.Cookies["Username"].Value;
                if (UserBiz.UserIsLogin(name.Text) == 1 && (DateTime.Now - user.UserLastTime).TotalMinutes < 30 && user.UserLastIP == ip && cookieName == name.Text)
                {//第二次在同一机子上30分钟内登陆,并且用Cookie防止在同一IP二个账号登陆

                }
                else if (UserBiz.UserIsLogin(name.Text) == 1 && user.UserLastIP != ip && (DateTime.Now - user.UserLastTime).TotalMinutes < 30)
                {
                    Response.Write("<script>alert('该用户已在IP为:" + user.UserLastIP + "的机子上已登录!')</script>");
                    return;
                }
                else
                {//第一次登陆
                    Response.Cookies["Username"].Value = name.Text;//设置Cookie
                }
                int scorse = 0;
                if ((DateTime.Now -user.UserLastTime).Days > 0)
                {//当日登陆第一次加积分
                    scorse = IntegralBiz.AddIntegralCount(13);
                }
                else
                {
                    scorse = 0;
                }
                BindState(user, ip, scorse);
                Response.Cookies["Username"].Expires = DateTime.Now.AddMinutes(30);
            }
        }


        private void BindState(UserEntity user, string IP, int scorse)
        {
            UserBiz.UpdateUserIsLoginState(1, name.Text);
            Session["User"] = user;
            //最后登录时间与IP
            UserBiz.UpdateUserInfoTimeandIP(user.UserID, DateTime.Now, IP, scorse);
            zhongxin.Visible = true;
            login.Visible = false;
        }

posted on 2010-08-06 14:15  小慧  阅读(522)  评论(1)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3