/// <summary> /// 绑定当前在线用户 /// </summary> private void BindLoginedUser() { userconnectinfo = DiscuzCloud.GetUserConnectInfo(openid); if (userconnectinfo == null || userconnectinfo.Uid > 0) { AddErrLine("Connect信息异常,登录失败,请尝试再次登录"); return; } if (DiscuzCloud.IsBindConnect(userid)) { AddErrLine("该用户已经绑定了QQ,无法再次绑定"); return; } userconnectinfo.Uid = userid; userconnectinfo.IsSetPassword = 1; DiscuzCloud.UpdateUserConnectInfo(userconnectinfo); UserBindConnectLog bindLog = DiscuzCloud.GetUserConnectBindLog(userconnectinfo.OpenId); if (bindLog == null) { bindLog = new UserBindConnectLog(); bindLog.OpenId = userconnectinfo.OpenId; bindLog.Uid = userconnectinfo.Uid; bindLog.Type = 1; bindLog.BindCount = 1; DiscuzCloud.CreateUserConnectBindLog(bindLog); } else { bindLog.Uid = userconnectinfo.Uid; bindLog.Type = 1; DiscuzCloud.UpdateUserConnectBindLog(bindLog); } SetUrl("index.aspx"); SetMetaRefresh(); SetShowBackLink(false); AddMsgLine("QQ绑定成功,继续浏览"); Utils.WriteCookie("bindconnect", "true");//将当前登录用户是否绑定QQ互联的状态设置为true ShortUserInfo userInfo = Users.GetShortUserInfo(userid); notifyscript = GetNotifyScript(userconnectinfo, userInfo.Username, userInfo.Bday, userInfo.Gender, userInfo.Email, userInfo.Showemail, DNTRequest.GetInt("useqqavatar", 2), "loginbind"); }
private void BindLoginedUser() { this.userconnectinfo = DiscuzCloud.GetUserConnectInfo(this.openid); if (this.userconnectinfo == null || this.userconnectinfo.Uid > 0) { base.AddErrLine("Connect信息异常,登录失败,请尝试再次登录"); return; } if (DiscuzCloud.IsBindConnect(this.userid)) { base.AddErrLine("该用户已经绑定了QQ,无法再次绑定"); return; } this.userconnectinfo.Uid = this.userid; this.userconnectinfo.IsSetPassword = true; DiscuzCloud.UpdateUserConnectInfo(this.userconnectinfo); ConnectbindLog userConnectBindLog = DiscuzCloud.GetUserConnectBindLog(this.userconnectinfo.OpenId); if (userConnectBindLog == null) { DiscuzCloud.CreateUserConnectBindLog(new ConnectbindLog { OpenID = this.userconnectinfo.OpenId, Uid = this.userconnectinfo.Uid, Type = 1, BindCount = 1 }); } else { userConnectBindLog.Uid = this.userconnectinfo.Uid; userConnectBindLog.Type = 1; DiscuzCloud.UpdateUserConnectBindLog(userConnectBindLog); } base.SetUrl("index.aspx"); base.SetMetaRefresh(); base.SetShowBackLink(false); base.AddMsgLine("QQ绑定成功,继续浏览"); Utils.WriteCookie("bindconnect", "1"); IUser shortUserInfo = Discuz.Entity.User.FindByID(this.userid); this.notifyscript = this.GetNotifyScript(this.userconnectinfo, shortUserInfo.Name, shortUserInfo.Bday, shortUserInfo.Gender, shortUserInfo.Email, shortUserInfo.ShowEmail, DNTRequest.GetInt("useqqavatar", 2), "loginbind"); }
/// <summary> /// 绑定论坛已存在的用户 /// </summary> private void BindForumExistedUser() { if (LoginLogs.UpdateLoginLog(DNTRequest.GetIP(), false) >= 5) { AddErrLine("您已经多次输入密码错误, 请15分钟后再登录"); return; } if (config.Emaillogin == 1 && Utils.IsValidEmail(postusername)) { DataTable dt = Users.GetUserInfoByEmail(postusername); if (dt.Rows.Count == 0) { AddErrLine("用户不存在"); return; } if (dt.Rows.Count > 1) { AddErrLine("您所使用Email不唯一,请使用用户名登陆"); return; } if (dt.Rows.Count == 1) { postusername = dt.Rows[0]["username"].ToString(); } } if (config.Emaillogin == 0) { if ((Users.GetUserId(postusername) == 0)) { AddErrLine("用户不存在"); } } if (string.IsNullOrEmpty(postpassword)) { AddErrLine("密码不能为空"); } if (IsErr()) { return; } ShortUserInfo userInfo = GetShortUserInfo(); if (userInfo != null) { #region 当前用户所在用户组为"禁止访问"或"等待激活"时 if ((userInfo.Groupid == 4 || userInfo.Groupid == 5) && userInfo.Groupexpiry != 0 && userInfo.Groupexpiry <= Utils.StrToInt(DateTime.Now.ToString("yyyyMMdd"), 0)) { //根据当前用户的积分获取对应积分用户组 UserGroupInfo groupInfo = CreditsFacade.GetCreditsUserGroupId(userInfo.Credits); usergroupid = groupInfo.Groupid != 0 ? groupInfo.Groupid : usergroupid; userInfo.Groupid = usergroupid; Users.UpdateUserGroup(userInfo.Uid, usergroupid); } if (userInfo.Groupid == 5)// 5-禁止访问 { AddErrLine("该用户已经被禁止访问,无法绑定"); return; } #endregion //读取当前用户的OPENID信息 userconnectinfo = DiscuzCloud.GetUserConnectInfo(openid); if (userconnectinfo == null || userconnectinfo.Uid > 0) { AddErrLine("Connect信息异常,登录失败,请尝试再次登录"); return; } if (DiscuzCloud.IsBindConnect(userInfo.Uid)) { AddErrLine("该用户已经绑定了QQ,无法再次绑定"); return; } userconnectinfo.Uid = userInfo.Uid; userconnectinfo.IsSetPassword = 1; DiscuzCloud.UpdateUserConnectInfo(userconnectinfo); UserBindConnectLog bindLog = DiscuzCloud.GetUserConnectBindLog(userconnectinfo.OpenId); if (bindLog == null) { bindLog = new UserBindConnectLog(); bindLog.OpenId = userconnectinfo.OpenId; bindLog.Uid = userconnectinfo.Uid; bindLog.Type = 1; bindLog.BindCount = 1; DiscuzCloud.CreateUserConnectBindLog(bindLog); } else { bindLog.Uid = userconnectinfo.Uid; bindLog.Type = 1; DiscuzCloud.UpdateUserConnectBindLog(bindLog); } if (userInfo.Groupid != 8) { LoginUser(userInfo); AddMsgLine("QQ登录成功,继续浏览"); } else { AddMsgLine("帐号绑定成功,但需要管理员审核通过才能登录"); } SetUrl("index.aspx"); SetMetaRefresh(); SetShowBackLink(false); notifyscript = GetNotifyScript(userconnectinfo, userInfo.Username, userInfo.Bday, userInfo.Gender, userInfo.Email, userInfo.Showemail, DNTRequest.GetInt("useqqavatar", 2), "registerbind"); return; } else { int errcount = LoginLogs.UpdateLoginLog(DNTRequest.GetIP(), true); if (errcount > 5) { AddErrLine("您已经输入密码5次错误, 请15分钟后再试"); } else { AddErrLine(string.Format("密码或安全提问第{0}次错误, 您最多有5次机会重试", errcount)); } } if (IsErr()) { return; } }
private void BindForumExistedUser() { if (LoginLogs.UpdateLoginLog(DNTRequest.GetIP(), false) >= 5) { base.AddErrLine("您已经多次输入密码错误, 请15分钟后再登录"); return; } if (this.config.Emaillogin == 1 && Utils.IsValidEmail(this.postusername)) { var list = Discuz.Entity.User.FindAllByEmail(postusername); if (list.Count == 0) { base.AddErrLine("用户不存在"); return; } if (list.Count > 1) { base.AddErrLine("您所使用Email不唯一,请使用用户名登陆"); return; } if (list.Count == 1) { this.postusername = list[0].Name; } } if (this.config.Emaillogin == 0 && Users.GetUserId(this.postusername) == 0) { base.AddErrLine("用户不存在"); } if (string.IsNullOrEmpty(this.postpassword)) { base.AddErrLine("密码不能为空"); } if (base.IsErr()) { return; } IUser shortUserInfo = this.GetShortUserInfo(); if (shortUserInfo == null) { int num = LoginLogs.UpdateLoginLog(DNTRequest.GetIP(), true); if (num > 5) { base.AddErrLine("您已经输入密码5次错误, 请15分钟后再试"); } else { base.AddErrLine(string.Format("密码或安全提问第{0}次错误, 您最多有5次机会重试", num)); } base.IsErr(); return; } if ((shortUserInfo.GroupID == 4 || shortUserInfo.GroupID == 5) && shortUserInfo.GroupExpiry != 0 && shortUserInfo.GroupExpiry <= Utils.StrToInt(DateTime.Now.ToString("yyyyMMdd"), 0)) { var creditsUserGroupId = CreditsFacade.GetCreditsUserGroupId((float)shortUserInfo.Credits); this.usergroupid = ((creditsUserGroupId.ID != 0) ? creditsUserGroupId.ID : this.usergroupid); shortUserInfo.GroupID = this.usergroupid; Users.UpdateUserGroup(shortUserInfo.ID, this.usergroupid); } if (shortUserInfo.GroupID == 5) { base.AddErrLine("该用户已经被禁止访问,无法绑定"); return; } this.userconnectinfo = DiscuzCloud.GetUserConnectInfo(this.openid); if (this.userconnectinfo == null || this.userconnectinfo.Uid > 0) { base.AddErrLine("Connect信息异常,登录失败,请尝试再次登录"); return; } if (DiscuzCloud.IsBindConnect(shortUserInfo.ID)) { base.AddErrLine("该用户已经绑定了QQ,无法再次绑定"); return; } this.userconnectinfo.Uid = shortUserInfo.ID; this.userconnectinfo.IsSetPassword = true; DiscuzCloud.UpdateUserConnectInfo(this.userconnectinfo); ConnectbindLog userConnectBindLog = DiscuzCloud.GetUserConnectBindLog(this.userconnectinfo.OpenId); if (userConnectBindLog == null) { DiscuzCloud.CreateUserConnectBindLog(new ConnectbindLog { OpenID = this.userconnectinfo.OpenId, Uid = this.userconnectinfo.Uid, Type = 1, BindCount = 1 }); } else { userConnectBindLog.Uid = this.userconnectinfo.Uid; userConnectBindLog.Type = 1; DiscuzCloud.UpdateUserConnectBindLog(userConnectBindLog); } if (shortUserInfo.GroupID != 8) { this.LoginUser(shortUserInfo); base.AddMsgLine("QQ登录成功,继续浏览"); } else { base.AddMsgLine("帐号绑定成功,但需要管理员审核通过才能登录"); } base.SetUrl("index.aspx"); base.SetMetaRefresh(); base.SetShowBackLink(false); this.notifyscript = this.GetNotifyScript(this.userconnectinfo, shortUserInfo.Name, shortUserInfo.Bday, shortUserInfo.Gender, shortUserInfo.Email, shortUserInfo.ShowEmail, DNTRequest.GetInt("useqqavatar", 2), "registerbind"); }