/// <summary> /// 发送验证注册请求链接 /// </summary> public void SendRegisterVerifyLink() { string email = DNTRequest.GetString(config.Antispamregisteremail).Trim().ToLower(); ValidateEmail(email); if (IsErr()) { return; } InviteCodeInfo inviteCode = allowinvite ? ValidateInviteInfo() : null; if (IsErr()) { return; } VerifyRegisterInfo verifyInfo = Users.CreateVerifyRegisterInfo(email, allowinvite ? invitecode : string.Empty); if (verifyInfo != null) { string verifyLink = string.Format("{0}register.aspx?action=reg&verifycode={1}", Utils.GetRootUrl(forumpath), verifyInfo.VerifyCode); string verifyContent = string.Format(config.Verifyregisteremailtemp, verifyInfo.Email.Split('@')[0], verifyLink); EmailMultiThread emt = new EmailMultiThread(verifyInfo.Email.Split('@')[0], verifyInfo.Email, string.Format("{0} 的安全注册链接,欢迎注册!", config.Forumtitle), verifyContent); new System.Threading.Thread(new System.Threading.ThreadStart(emt.Send)).Start(); } SetUrl("index.aspx"); SetShowBackLink(false); SetMetaRefresh(2); AddMsgLine("请求已经发送,请查收邮箱"); }
protected override void ShowPage() { pagetitle = "用户注册"; if (userid > 0) { SetUrl(BaseConfigs.GetForumPath); SetMetaRefresh(); SetShowBackLink(false); AddMsgLine("不能重复注册用户"); ispost = true; return; } if (config.Regstatus < 1) { AddErrLine("论坛当前禁止新用户注册"); return; } #region action set if (string.IsNullOrEmpty(action)) { action = config.Rules == 1 && infloat == 0 ? "rules" : (config.Regverify == 1 ? "verify" : "reg"); } else if (Utils.InArray(action, "rules,verify,reg")) { if (action == "rules" && (config.Rules == 0 || infloat == 1)) { action = config.Regverify == 1 ? "verify" : "reg"; } } else { AddErrLine("参数错误"); return; } #endregion #region IP check string msg = Users.CheckRegisterDateDiff(DNTRequest.GetIP()); if (msg != null) { AddErrLine(msg); return; } if (action == "verify" && config.Regverify == 1 && config.Regctrl > 0) { VerifyRegisterInfo tmpVerifyInfo = Users.GetVerifyRegisterInfoByIp(DNTRequest.GetIP()); if (tmpVerifyInfo != null) { int interval = Utils.StrDateDiffHours(tmpVerifyInfo.CreateTime, config.Regctrl); if (interval == 0) { AddErrLine("抱歉, 系统设置了IP注册间隔限制, 您必须在 " + (Utils.StrDateDiffMinutes(tmpVerifyInfo.CreateTime, config.Regctrl * 60) * -1) + " 分钟后才可以提交请求"); return; } else if (interval < 0) { AddErrLine("抱歉, 系统设置了IP注册间隔限制, 您必须在 " + (interval * -1) + " 小时后才可以提交请求"); return; } } } #endregion //如果开启了Email验证注册且action是注册(通过注册链接进入) if (action == "reg" && config.Regverify == 1) { verifyinfo = Users.GetVerifyRegisterInfo(verifycode); if (verifyinfo == null || (verifyinfo.CreateTime != verifyinfo.ExpireTime && TypeConverter.StrToDateTime(verifyinfo.ExpireTime) < DateTime.Now)) { AddErrLine("该注册链接不存在或已过期,请点击注册重新获取链接"); return; } invitecode = verifyinfo.InviteCode; } allowinvite = Utils.InArray(config.Regstatus.ToString(), "2,3");//注册状态是否是开启了邀请功能config.Regstatus=2或者=3 //如果是POST提交 if (ispost) { switch (action) { case "rules": //通过注册协议 action = string.IsNullOrEmpty(agree) ? action : (config.Regverify == 1 ? "verify" : "reg"); ispost = false; break; case "verify": //发送验证注册请求邮件 SendRegisterVerifyLink(); break; case "reg": //注册用户 if (createuser == 1) { Register(); } break; } } }