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-05 13:05  酷&酷  阅读(327)  评论(0编辑  收藏  举报