/// <summary> /// 更新用户密码 /// </summary> /// <param name="userInfo">用户信息(密码字段为明文)</param> /// <returns>是否成功</returns> public static bool ResetPassword(UserInfo userInfo) { //第三方加密验证模式 if (GeneralConfigs.GetConfig().Passwordmode > 1 && PasswordModeProvider.GetInstance() != null) { PasswordModeProvider.GetInstance().SaveUserInfo(userInfo); } else { userInfo.Password = Utils.MD5(userInfo.Password); Users.UpdateUser(userInfo); } return(true); }
/// <summary> /// 检测临时用户帐号信息 /// </summary> /// <param name="username">用户名</param> /// <param name="password">密码</param> /// <param name="questionid">问题id</param> /// <param name="answer">答案</param> /// <returns>如果正确则返回用户id, 否则返回-1</returns> //public static int CheckTempUserInfo(string tempUserName, string tempPassWord, int question, string answer) //{ // int realUserId = -1; // switch (GeneralConfigs.GetConfig().Passwordmode) // { // case 0://默认模式 // { // if (GeneralConfigs.GetConfig().Secques == 1) // realUserId = Users.CheckPasswordAndSecques(tempUserName, tempPassWord, true, question, answer); // else // realUserId = Users.CheckPassword(tempUserName, tempPassWord, true); // break; // } // case 1://动网兼容模式 // { // if (GeneralConfigs.GetConfig().Secques == 1) // realUserId = Users.CheckDvBbsPasswordAndSecques(tempUserName, tempPassWord, question, answer); // else // realUserId = Users.CheckDvBbsPassword(tempUserName, tempPassWord); // break; // } // default://第三方加密验证模式 // { // UserInfo userInfo = CheckThirdPartPassword(tempUserName, tempPassWord, question, answer); // realUserId = userInfo != null ? userInfo.Uid : -1; // break; // } // } // return realUserId; //} /// <summary> /// 第三方用户密码检查 /// </summary> /// <param name="userName"></param> /// <param name="passWord"></param> /// <param name="question"></param> /// <param name="answer"></param> /// <returns></returns> public static UserInfo CheckThirdPartPassword(string userName, string passWord, int question, string answer) { UserInfo userInfo = Users.GetUserInfo(userName); //当安全问题未通过时 if (userInfo != null && GeneralConfigs.GetConfig().Secques == 1 && userInfo.Secques.Trim() != ForumUtils.GetUserSecques(question, answer)) { return(null); } if (PasswordModeProvider.GetInstance() != null && PasswordModeProvider.GetInstance().CheckPassword(userInfo, passWord)) { return(userInfo); } return(null); }
private void AddUserInfo_Click(object sender, EventArgs e) { #region 添加新用户信息 if (this.CheckCookie()) { if (userName.Text.Trim() == "" || password.Text.Trim() == "") { base.RegisterStartupScript("", "<script>alert('用户名或密码为空,因此无法提交!');window.location.href='global_adduser.aspx';</script>"); return; } if (!Utils.IsSafeSqlString(userName.Text)) { base.RegisterStartupScript("", "<script>alert('您输入的用户名包含不安全的字符,因此无法提交!');window.location.href='global_adduser.aspx';</script>"); return; } if (PrivateMessages.SystemUserName == userName.Text) { base.RegisterStartupScript("", "<script>alert('您不能创建该用户名,因为它是系统保留的用户名,请您输入其它的用户名!');window.location.href='global_adduser.aspx';</script>"); return; } if (!Utils.IsValidEmail(email.Text.Trim())) { base.RegisterStartupScript("", "<script>alert('E-mail为空或格式不正确,因此无法提交!');window.location='global_adduser.aspx';</script>"); return; } UserInfo userInfo = CreateUserInfo(); if (AdminUsers.GetUserId(userName.Text) > 0) { base.RegisterStartupScript("", "<script>alert('您所输入的用户名已被使用过, 请输入其他的用户名!');window.location.href='global_adduser.aspx';</script>"); return; } if (!Users.ValidateEmail(email.Text)) { base.RegisterStartupScript("", "<script>alert('您所输入的邮箱地址已被使用过, 请输入其他的邮箱!');window.location.href='global_adduser.aspx';</script>"); return; } if (config.Passwordmode > 1 && PasswordModeProvider.GetInstance() != null) { PasswordModeProvider.GetInstance().CreateUserInfo(userInfo); } else { userInfo.Password = Utils.MD5(userInfo.Password); AdminUsers.CreateUser(userInfo); } AdminVistLogs.InsertLog(this.userid, this.username, this.usergroupid, this.grouptitle, this.ip, "后台添加用户", "用户名:" + userName.Text); string emailresult = null; if (sendemail.Checked) { emailresult = SendEmail(email.Text); } base.RegisterStartupScript("PAGE", "window.location.href='global_usergrid.aspx';"); } #endregion }
protected override void ShowPage() { pagetitle = "用户控制面板"; if (!IsLogin()) { return; } if (DNTRequest.IsPost()) { if (ForumUtils.IsCrossSitePost()) { AddErrLine("您的请求来路不正确,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。"); return; } bool isPasswordError = true; switch (config.Passwordmode) { case 1: //动网兼容模式 { isPasswordError = Utils.MD5(DNTRequest.GetString("password")) != password; break; } case 0: //默认模式 { isPasswordError = Utils.MD5(DNTRequest.GetString("password")) != password; break; } default: //第三方加密验证模式 { if (PasswordModeProvider.GetInstance() != null) { isPasswordError = !PasswordModeProvider.GetInstance().CheckPassword(user, DNTRequest.GetString("password")); } break; } } if (isPasswordError) { AddErrLine("密码错误"); return; } int paynum = DNTRequest.GetInt("paynum", 0); if (paynum <= 0) { AddErrLine("数量必须是大于等于0的整数"); return; } int fromto = Users.GetUserId(DNTRequest.GetString("fromto").Trim()); if (fromto == -1) { AddErrLine("指定的转帐接受人不存在"); return; } int extcredits = DNTRequest.GetInt("extcredits", 0); if (extcredits < 1 || extcredits > 8) { AddErrLine("请正确选择要转帐的积分类型!"); return; } //对转帐后的积分增减进行修改设置 string extcreditsName = Scoresets.GetScoreSet(extcredits).Name.Trim(); if (Utils.StrIsNullOrEmpty(extcreditsName)) { AddErrLine("错误的输入!"); return; } if ((Users.GetUserExtCredits(userid, extcredits) - paynum) < Scoresets.GetTransferMinCredits()) { AddErrLine(string.Format("抱歉, 您的 \"{0}\" 不足.系统当前规定转帐余额不得小于{1}", extcreditsName, Scoresets.GetTransferMinCredits().ToString())); return; } //计算并更新2个扩展积分的新值 float toPayNum = (float)Math.Round(paynum * (1 - creditstax), 2); Users.UpdateUserExtCredits(userid, extcredits, paynum * -1); Users.UpdateUserExtCredits(fromto, extcredits, toPayNum); CreditsLogs.AddCreditsLog(userid, fromto, extcredits, extcredits, paynum, toPayNum, Utils.GetDateTime(), 2); SetUrl("usercpcreaditstransferlog.aspx"); SetMetaRefresh(); SetShowBackLink(false); AddMsgLine("积分转帐完毕, 正在返回积分兑换与转帐记录"); } }
/// <summary> /// 创建用户信息 /// </summary> /// <param name="tmpUsername"></param> /// <param name="email"></param> /// <param name="tmpBday"></param> /// <returns></returns> private UserInfo CreateUser(string tmpUsername, string email, string tmpBday) { // 如果找不到0积分的用户组则用户自动成为待验证用户 UserInfo userinfo = new UserInfo(); userinfo.Username = tmpUsername; userinfo.Nickname = Utils.HtmlEncode(ForumUtils.BanWordFilter(DNTRequest.GetString("nickname"))); userinfo.Password = DNTRequest.GetString("password"); userinfo.Secques = ForumUtils.GetUserSecques(DNTRequest.GetInt("question", 0), DNTRequest.GetString("answer")); userinfo.Gender = DNTRequest.GetInt("gender", 0); userinfo.Adminid = 0; userinfo.Groupexpiry = 0; userinfo.Extgroupids = ""; userinfo.Regip = DNTRequest.GetIP(); userinfo.Joindate = Utils.GetDateTime(); userinfo.Lastip = DNTRequest.GetIP(); userinfo.Lastvisit = Utils.GetDateTime(); userinfo.Lastactivity = Utils.GetDateTime(); userinfo.Lastpost = Utils.GetDateTime(); userinfo.Lastpostid = 0; userinfo.Lastposttitle = ""; userinfo.Posts = 0; userinfo.Digestposts = 0; userinfo.Oltime = 0; userinfo.Pageviews = 0; userinfo.Credits = 0; userinfo.Extcredits1 = Scoresets.GetScoreSet(1).Init; userinfo.Extcredits2 = Scoresets.GetScoreSet(2).Init; userinfo.Extcredits3 = Scoresets.GetScoreSet(3).Init; userinfo.Extcredits4 = Scoresets.GetScoreSet(4).Init; userinfo.Extcredits5 = Scoresets.GetScoreSet(5).Init; userinfo.Extcredits6 = Scoresets.GetScoreSet(6).Init; userinfo.Extcredits7 = Scoresets.GetScoreSet(7).Init; userinfo.Extcredits8 = Scoresets.GetScoreSet(8).Init; //userinfo.Avatarshowid = 0; userinfo.Email = email; userinfo.Bday = tmpBday; userinfo.Sigstatus = DNTRequest.GetInt("sigstatus", 1) != 0 ? 1 : 0; userinfo.Tpp = DNTRequest.GetInt("tpp", 0); userinfo.Ppp = DNTRequest.GetInt("ppp", 0); userinfo.Templateid = DNTRequest.GetInt("templateid", 0); userinfo.Pmsound = DNTRequest.GetInt("pmsound", 0); userinfo.Showemail = DNTRequest.GetInt("showemail", 0); userinfo.Salt = ""; int receivepmsetting = config.Regadvance == 0 ? 3 : DNTRequest.GetInt("receivesetting", 3);//关于短信息枚举值的设置看ReceivePMSettingType类型注释,此处不禁止用户接受系统短信息 //foreach (string rpms in DNTRequest.GetString("receivesetting").Split(',')) //{ // if (!Utils.StrIsNullOrEmpty(rpms)) // receivepmsetting = receivepmsetting | int.Parse(rpms); //} //if (config.Regadvance == 0) // receivepmsetting = 7; userinfo.Newsletter = (ReceivePMSettingType)receivepmsetting; userinfo.Invisible = DNTRequest.GetInt("invisible", 0); userinfo.Newpm = config.Welcomemsg == 1 ? 1 : 0; userinfo.Medals = ""; userinfo.Accessmasks = DNTRequest.GetInt("accessmasks", 0); userinfo.Website = Utils.HtmlEncode(DNTRequest.GetString("website")); userinfo.Icq = Utils.HtmlEncode(DNTRequest.GetString("icq")); userinfo.Qq = Utils.HtmlEncode(DNTRequest.GetString("qq")); userinfo.Yahoo = Utils.HtmlEncode(DNTRequest.GetString("yahoo")); userinfo.Msn = Utils.HtmlEncode(DNTRequest.GetString("msn")); userinfo.Skype = Utils.HtmlEncode(DNTRequest.GetString("skype")); userinfo.Location = Utils.HtmlEncode(DNTRequest.GetString("location")); userinfo.Customstatus = (usergroupinfo.Allowcstatus == 1) ? Utils.HtmlEncode(DNTRequest.GetString("customstatus")) : ""; //userinfo.Avatar = @"avatars\common\0.gif"; //userinfo.Avatarwidth = 0; //userinfo.Avatarheight = 0; userinfo.Bio = ForumUtils.BanWordFilter(DNTRequest.GetString("bio")); userinfo.Signature = Utils.HtmlEncode(ForumUtils.BanWordFilter(DNTRequest.GetString("signature"))); PostpramsInfo postpramsinfo = new PostpramsInfo(); postpramsinfo.Usergroupid = usergroupid; postpramsinfo.Attachimgpost = config.Attachimgpost; postpramsinfo.Showattachmentpath = config.Showattachmentpath; postpramsinfo.Hide = 0; postpramsinfo.Price = 0; postpramsinfo.Sdetail = userinfo.Signature; postpramsinfo.Smileyoff = 1; postpramsinfo.Bbcodeoff = 1 - usergroupinfo.Allowsigbbcode; postpramsinfo.Parseurloff = 1; postpramsinfo.Showimages = usergroupinfo.Allowsigimgcode; postpramsinfo.Allowhtml = 0; postpramsinfo.Smiliesinfo = Smilies.GetSmiliesListWithInfo(); postpramsinfo.Customeditorbuttoninfo = Editors.GetCustomEditButtonListWithInfo(); postpramsinfo.Smiliesmax = config.Smiliesmax; userinfo.Sightml = UBB.UBBToHTML(postpramsinfo); userinfo.Authtime = Utils.GetDateTime(); //邮箱激活链接验证 if (config.Regverify == 1) { userinfo.Authstr = ForumUtils.CreateAuthStr(20); userinfo.Authflag = 1; userinfo.Groupid = 8; SendEmail(tmpUsername, DNTRequest.GetString("password").Trim(), DNTRequest.GetString(config.Antispamregisteremail).Trim(), userinfo.Authstr); } //系统管理员进行后台验证 else if (config.Regverify == 2) { userinfo.Authstr = DNTRequest.GetString("website"); userinfo.Groupid = 8; userinfo.Authflag = 1; } else { userinfo.Authstr = ""; userinfo.Authflag = 0; userinfo.Groupid = UserCredits.GetCreditsUserGroupId(0).Groupid; } userinfo.Realname = DNTRequest.GetString("realname"); userinfo.Idcard = DNTRequest.GetString("idcard"); userinfo.Mobile = DNTRequest.GetString("mobile"); userinfo.Phone = DNTRequest.GetString("phone"); //第三方加密验证模式 if (config.Passwordmode > 1 && PasswordModeProvider.GetInstance() != null) { userinfo.Uid = PasswordModeProvider.GetInstance().CreateUserInfo(userinfo); } else { userinfo.Password = Utils.MD5(userinfo.Password); userinfo.Uid = Users.CreateUser(userinfo); } return(userinfo); }
protected override void ShowPage() { pagetitle = "用户控制面板"; string jsCreditsRateArray = ""; foreach (DataRow dr in Scoresets.GetScorePaySet(0).Rows) { jsCreditsRateArray += "creditsrate[" + dr["id"] + "] = " + dr["rate"] + ";\r\n"; } jscreditsratearray = string.Format(jscreditsratearray, jsCreditsRateArray); if (!IsLogin()) { return; } if (DNTRequest.IsPost()) { if (ForumUtils.IsCrossSitePost()) { AddErrLine("您的请求来路不正确,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。"); return; } bool isPasswordError = true; switch (config.Passwordmode) { case 1: //动网兼容模式 { isPasswordError = Utils.MD5(DNTRequest.GetString("password")) != password; break; } case 0: //默认模式 { isPasswordError = Utils.MD5(DNTRequest.GetString("password")) != password; break; } default: //第三方加密验证模式 { if (PasswordModeProvider.GetInstance() != null) { isPasswordError = !PasswordModeProvider.GetInstance().CheckPassword(user, DNTRequest.GetString("password")); } break; } } if (isPasswordError) { AddErrLine("密码错误"); return; } int paynum = DNTRequest.GetInt("paynum", 0); if (paynum <= 0) { AddErrLine("数量必须是大于0的整数"); return; } if (DNTRequest.GetInt("extcredits1", 0) < 1 || DNTRequest.GetInt("extcredits2", 0) < 1 || DNTRequest.GetInt("extcredits1", 0) > 8 || DNTRequest.GetInt("extcredits2", 0) > 8) { AddErrLine("请正确选择要兑换的积分类型!"); return; } if (DNTRequest.GetInt("extcredits1", 0) == DNTRequest.GetInt("extcredits2", 0)) { AddErrLine("不能兑换相同类型的积分"); return; } //对交易后的积分增减进行修改设置 UserExtcreditsInfo extcredits1info = Scoresets.GetScoreSet(DNTRequest.GetInt("extcredits1", 0)); UserExtcreditsInfo extcredits2info = Scoresets.GetScoreSet(DNTRequest.GetInt("extcredits2", 0)); if (Utils.StrIsNullOrEmpty(extcredits1info.Name) || Utils.StrIsNullOrEmpty(extcredits2info.Name)) { AddErrLine("错误的输入!"); return; } if ((Users.GetUserExtCredits(userid, DNTRequest.GetInt("extcredits1", 0)) - paynum) < Scoresets.GetExchangeMinCredits()) { AddErrLine("抱歉, 您的 \"" + extcredits1info.Name + "\" 不足." + Scoresets.GetExchangeMinCredits()); return; } UserInfo userInfo = Users.GetUserInfo(userid); float extcredit2paynum = (float)Math.Round(paynum * (extcredits1info.Rate / extcredits2info.Rate) * (1 - creditstax), 2); Users.UpdateUserExtCredits(userid, DNTRequest.GetInt("extcredits1", 0), paynum * -1); Users.UpdateUserExtCredits(userid, DNTRequest.GetInt("extcredits2", 0), extcredit2paynum); CreditsLogs.AddCreditsLog(userid, userid, DNTRequest.GetInt("extcredits1", 0), DNTRequest.GetInt("extcredits2", 0), paynum, extcredit2paynum, Utils.GetDateTime(), 1); SetUrl("usercpcreaditstransferlog.aspx"); SetMetaRefresh(); SetShowBackLink(false); AddMsgLine("积分兑换完毕, 正在返回积分兑换与转帐记录"); } }
protected override void ShowPage() { pagetitle = "用户控制面板"; if (!IsLogin()) { return; } UserConnectInfo connectInfo = new UserConnectInfo(); if (isbindconnect) { connectInfo = DiscuzCloud.GetUserConnectInfo(userid); isconnectsetpassword = connectInfo != null && connectInfo.IsSetPassword == 0; } if (DNTRequest.IsPost()) { UserInfo userInfo = Users.GetUserInfo(userid); string newpassword = DNTRequest.GetString("newpassword"); if (!isconnectsetpassword) { //第三方加密验证模式 if (config.Passwordmode > 1 && PasswordModeProvider.GetInstance() != null) { if (!PasswordModeProvider.GetInstance().CheckPassword(userInfo, DNTRequest.GetString("oldpassword"))) { AddErrLine("您的原密码错误"); return; } } else if (Users.CheckPassword(userid, DNTRequest.GetString("oldpassword"), true) == -1) { AddErrLine("您的原密码错误"); return; } } if (newpassword != DNTRequest.GetString("newpassword2")) { AddErrLine("新密码两次输入不一致"); return; } if (Utils.StrIsNullOrEmpty(newpassword)) { newpassword = DNTRequest.GetString("oldpassword"); } if (newpassword.Length < 6) { AddErrLine("密码不得少于6个字符"); return; } userInfo.Password = newpassword; Users.ResetPassword(userInfo); //同步其他应用密码 Sync.UpdatePassword(userInfo.Username, userInfo.Password, ""); if (!Utils.StrIsNullOrEmpty(DNTRequest.GetString("changesecques"))) { Users.UpdateUserSecques(userid, DNTRequest.GetInt("question", 0), DNTRequest.GetString("answer")); } ForumUtils.WriteCookie("password", ForumUtils.SetCookiePassword(userInfo.Password, config.Passwordkey)); OnlineUsers.UpdatePassword(olid, userInfo.Password); if (isconnectsetpassword && connectInfo.Uid == userid) { connectInfo.IsSetPassword = 1; DiscuzCloud.UpdateUserConnectInfo(connectInfo); } SetUrl("usercpnewpassword.aspx"); SetMetaRefresh(); SetShowBackLink(true); AddMsgLine("修改密码完毕, 同时已经更新了您的登录信息"); } }
/// <summary> /// 注册用户 /// </summary> /// <returns></returns> public string Register() { string returnStr = string.Empty; if (Signature != GetParam("sig").ToString()) { ErrorCode = (int)ErrorType.API_EC_SIGNATURE; return(returnStr); } if (CallId <= LastCallId) { ErrorCode = (int)ErrorType.API_EC_CALLID; return(returnStr); } if (!CheckRequiredParams("user_name,password,email")) { ErrorCode = (int)ErrorType.API_EC_PARAM; return(returnStr); } if (this.App.ApplicationType == (int)ApplicationType.DESKTOP)//如果是桌面程序则不允许此方法 { if (Uid < 1 || Discuz.Forum.UserGroups.GetUserGroupInfo(Discuz.Forum.Users.GetShortUserInfo(Uid).Groupid).Radminid != 1) { ErrorCode = (int)ErrorType.API_EC_PERMISSION_DENIED; return(""); } } else if (Uid > 0)//已经登录的用户不能再注册 { ErrorCode = (int)ErrorType.API_EC_USER_ONLINE; return(returnStr); } string username = GetParam("user_name").ToString(); string password = GetParam("password").ToString(); string email = GetParam("email").ToString(); bool isMD5Passwd = GetParam("password_format") != null && GetParam("password_format").ToString() == "md5" ? true : false; //用户名不符合规范 if (!CheckUsername(username)) { ErrorCode = (int)ErrorType.API_EC_USERNAME_ILLEGAL; return(returnStr); } if (Discuz.Forum.Users.GetUserId(username) != 0)//如果用户名符合注册规则, 则判断是否已存在 { ErrorCode = (int)ErrorType.API_EC_USER_ALREADY_EXIST; return(returnStr); } if (!isMD5Passwd && password.Length < 6) { ErrorCode = (int)ErrorType.API_EC_PARAM; return(returnStr); } if (!CheckEmail(email)) { ErrorCode = (int)ErrorType.API_EC_EMAIL; return(returnStr); } UserInfo userInfo = new UserInfo(); userInfo.Username = username; userInfo.Nickname = string.Empty; userInfo.Password = isMD5Passwd ? password : Utils.MD5(password); userInfo.Secques = string.Empty; userInfo.Gender = 0; userInfo.Adminid = 0; userInfo.Groupexpiry = 0; userInfo.Extgroupids = ""; userInfo.Regip = DNTRequest.GetIP(); userInfo.Joindate = Utils.GetDateTime(); userInfo.Lastip = DNTRequest.GetIP(); userInfo.Lastvisit = Utils.GetDateTime(); userInfo.Lastactivity = Utils.GetDateTime(); userInfo.Lastpost = Utils.GetDateTime(); userInfo.Lastpostid = 0; userInfo.Lastposttitle = ""; userInfo.Posts = 0; userInfo.Digestposts = 0; userInfo.Oltime = 0; userInfo.Pageviews = 0; userInfo.Credits = 0; userInfo.Extcredits1 = Scoresets.GetScoreSet(1).Init; userInfo.Extcredits2 = Scoresets.GetScoreSet(2).Init; userInfo.Extcredits3 = Scoresets.GetScoreSet(3).Init; userInfo.Extcredits4 = Scoresets.GetScoreSet(4).Init; userInfo.Extcredits5 = Scoresets.GetScoreSet(5).Init; userInfo.Extcredits6 = Scoresets.GetScoreSet(6).Init; userInfo.Extcredits7 = Scoresets.GetScoreSet(7).Init; userInfo.Extcredits8 = Scoresets.GetScoreSet(8).Init; userInfo.Email = email; userInfo.Bday = string.Empty; userInfo.Sigstatus = 0; userInfo.Tpp = 0; userInfo.Ppp = 0; userInfo.Templateid = 0; userInfo.Pmsound = 0; userInfo.Showemail = 0; userInfo.Salt = "0"; int receivepmsetting = Config.Regadvance == 0 ? 7 : 1; userInfo.Newsletter = (ReceivePMSettingType)receivepmsetting; userInfo.Invisible = 0; userInfo.Newpm = Config.Welcomemsg == 1 ? 1 : 0; userInfo.Medals = ""; userInfo.Accessmasks = 0; userInfo.Website = string.Empty; userInfo.Icq = string.Empty; userInfo.Qq = string.Empty; userInfo.Yahoo = string.Empty; userInfo.Msn = string.Empty; userInfo.Skype = string.Empty; userInfo.Location = string.Empty; userInfo.Customstatus = string.Empty; userInfo.Bio = string.Empty; userInfo.Signature = string.Empty; userInfo.Sightml = string.Empty; userInfo.Authtime = Utils.GetDateTime(); //邮箱激活链接验证 if (Config.Regverify == 1) { userInfo.Authstr = ForumUtils.CreateAuthStr(20); userInfo.Authflag = 1; userInfo.Groupid = 8; Emails.DiscuzSmtpMail(username, email, string.Empty, userInfo.Authstr); } //系统管理员进行后台验证 else if (Config.Regverify == 2) { userInfo.Authstr = string.Empty; userInfo.Groupid = 8; userInfo.Authflag = 1; } else { userInfo.Authstr = ""; userInfo.Authflag = 0; userInfo.Groupid = UserCredits.GetCreditsUserGroupId(0).Groupid; } userInfo.Realname = string.Empty; userInfo.Idcard = string.Empty; userInfo.Mobile = string.Empty; userInfo.Phone = string.Empty; if (Config.Passwordmode > 1 && PasswordModeProvider.GetInstance() != null) { userInfo.Uid = PasswordModeProvider.GetInstance().CreateUserInfo(userInfo); } else { userInfo.Uid = Discuz.Forum.Users.CreateUser(userInfo); } if (Config.Welcomemsg == 1) { PrivateMessageInfo privatemessageinfo = new PrivateMessageInfo(); // 收件箱 privatemessageinfo.Message = Config.Welcomemsgtxt; privatemessageinfo.Subject = "欢迎您的加入! (请勿回复本信息)"; privatemessageinfo.Msgto = userInfo.Username; privatemessageinfo.Msgtoid = userInfo.Uid; privatemessageinfo.Msgfrom = PrivateMessages.SystemUserName; privatemessageinfo.Msgfromid = 0; privatemessageinfo.New = 1; privatemessageinfo.Postdatetime = Utils.GetDateTime(); privatemessageinfo.Folder = 0; PrivateMessages.CreatePrivateMessage(privatemessageinfo, 0); } Statistics.ReSetStatisticsCache(); //信息同步通知不会发向当前请求接口的应用程序,所以此处应保留,以支持论坛向其他关联应用程序发送通知 Sync.UserRegister(userInfo.Uid, userInfo.Username, userInfo.Password, ApiKey); UserCredits.UpdateUserCredits(userInfo.Uid); if (Format == FormatType.JSON) { return(string.Format("\"{0}\"", userInfo.Uid)); } RegisterResponse rr = new RegisterResponse(); rr.Uid = userInfo.Uid; return(SerializationHelper.Serialize(rr)); }
/// <summary>创建用户信息</summary> private static UserInfo CreateUser(GeneralConfigInfo config, IPKSPrincipal principal, bool isAdmin) { var tmpUsername = principal.Identity.Name; // 如果找不到0积分的用户组则用户自动成为待验证用户 UserInfo userinfo = new UserInfo(); userinfo.Username = tmpUsername; userinfo.Nickname = tmpUsername; userinfo.Password = Guid.NewGuid().ToString(); userinfo.Secques = ""; userinfo.Gender = 0; userinfo.Adminid = isAdmin ? 1 : 0; userinfo.Groupexpiry = 0; userinfo.Extgroupids = ""; userinfo.Regip = DNTRequest.GetIP(); userinfo.Joindate = Discuz.Common.Utils.GetDateTime(); userinfo.Lastip = userinfo.Regip; userinfo.Lastvisit = userinfo.Joindate; userinfo.Lastactivity = userinfo.Joindate; userinfo.Lastpost = userinfo.Joindate; userinfo.Lastpostid = 0; userinfo.Lastposttitle = ""; userinfo.Posts = 0; userinfo.Digestposts = 0; userinfo.Oltime = 0; userinfo.Pageviews = 0; userinfo.Credits = 0; userinfo.Extcredits1 = Scoresets.GetScoreSet(1).Init; userinfo.Extcredits2 = Scoresets.GetScoreSet(2).Init; userinfo.Extcredits3 = Scoresets.GetScoreSet(3).Init; userinfo.Extcredits4 = Scoresets.GetScoreSet(4).Init; userinfo.Extcredits5 = Scoresets.GetScoreSet(5).Init; userinfo.Extcredits6 = Scoresets.GetScoreSet(6).Init; userinfo.Extcredits7 = Scoresets.GetScoreSet(7).Init; userinfo.Extcredits8 = Scoresets.GetScoreSet(8).Init; //userinfo.Avatarshowid = 0; userinfo.Email = principal.Identity.Email ?? ""; userinfo.Bday = ""; userinfo.Sigstatus = 1; userinfo.Tpp = 0; userinfo.Ppp = 0; userinfo.Templateid = 0; userinfo.Pmsound = 0; userinfo.Showemail = 0; userinfo.Salt = ""; int receivepmsetting = 3;//关于短信息枚举值的设置看ReceivePMSettingType类型注释,此处不禁止用户接受系统短信息 //foreach (string rpms in DNTRequest.GetString("receivesetting").Split(',')) //{ // if (!Utils.StrIsNullOrEmpty(rpms)) // receivepmsetting = receivepmsetting | int.Parse(rpms); //} //if (config.Regadvance == 0) // receivepmsetting = 7; userinfo.Newsletter = (ReceivePMSettingType)receivepmsetting; userinfo.Invisible = 0; userinfo.Newpm = config.Welcomemsg == 1 ? 1 : 0; userinfo.Medals = ""; userinfo.Accessmasks = 0; userinfo.Website = ""; userinfo.Icq = ""; userinfo.Qq = ""; userinfo.Yahoo = ""; userinfo.Msn = ""; userinfo.Skype = ""; userinfo.Location = ""; userinfo.Customstatus = ""; //userinfo.Avatar = @"avatars\common\0.gif"; //userinfo.Avatarwidth = 0; //userinfo.Avatarheight = 0; userinfo.Bio = ""; userinfo.Signature = ""; var usergroupid = isAdmin ? 1 : 7; var usergroupinfo = UserGroups.GetUserGroupInfo(usergroupid); PostpramsInfo postpramsinfo = new PostpramsInfo(); postpramsinfo.Usergroupid = usergroupid; postpramsinfo.Attachimgpost = config.Attachimgpost; postpramsinfo.Showattachmentpath = config.Showattachmentpath; postpramsinfo.Hide = 0; postpramsinfo.Price = 0; postpramsinfo.Sdetail = userinfo.Signature; postpramsinfo.Smileyoff = 1; postpramsinfo.Bbcodeoff = 1 - usergroupinfo.Allowsigbbcode; postpramsinfo.Parseurloff = 1; postpramsinfo.Showimages = usergroupinfo.Allowsigimgcode; postpramsinfo.Allowhtml = 0; postpramsinfo.Smiliesinfo = Smilies.GetSmiliesListWithInfo(); postpramsinfo.Customeditorbuttoninfo = Editors.GetCustomEditButtonListWithInfo(); postpramsinfo.Smiliesmax = config.Smiliesmax; userinfo.Sightml = UBB.UBBToHTML(postpramsinfo); userinfo.Authtime = userinfo.Joindate; if (isAdmin) { userinfo.Authstr = ""; userinfo.Authflag = 0; userinfo.Groupid = usergroupid; } //邮箱激活链接验证 else if (config.Regverify == 1) { userinfo.Authstr = ForumUtils.CreateAuthStr(20); userinfo.Authflag = 1; userinfo.Groupid = 8; //SendEmail(tmpUsername, DNTRequest.GetString("password").Trim(), DNTRequest.GetString(config.Antispamregisteremail).Trim(), userinfo.Authstr); //Emails.DiscuzSmtpMail(tmpUsername, emailaddress, password, authstr); } //系统管理员进行后台验证 else if (config.Regverify == 2) { userinfo.Authstr = ""; userinfo.Groupid = 8; userinfo.Authflag = 1; } else { userinfo.Authstr = ""; userinfo.Authflag = 0; userinfo.Groupid = UserCredits.GetCreditsUserGroupId(0).Groupid; } userinfo.Realname = ""; userinfo.Idcard = ""; userinfo.Mobile = ""; userinfo.Phone = principal.Identity.PhoneNumber; //第三方加密验证模式 if (config.Passwordmode > 1 && PasswordModeProvider.GetInstance() != null) { userinfo.Uid = PasswordModeProvider.GetInstance().CreateUserInfo(userinfo); } else { userinfo.Password = Discuz.Common.Utils.MD5(userinfo.Password); userinfo.Uid = Users.CreateUser(userinfo); } return(userinfo); }