/// <summary> /// 获取激活码 (邮件发送成功 默认跳转到激活页面) /// </summary> /// <param name="username">用户名</param> /// <param name="mail">邮箱地址</param> /// <returns></returns> public bool GetActivate(out JSData jsdata) { var json = new Common.CustomModel.JSData(); #region 1.验证是否正常途径访问获取激活码 方法 if (null == Session[tempUserinfo]) { json.State = EnumState.失败; //json.Messg = "请您通过正常途径访问激活页面~"; json.JSurl = "/"; jsdata = json; return(false); } #endregion Session[jihuoma] = new Random().Next(999999999).ToString(); #region 2.发送邮件 如果邮件发送成功 默认跳转到 激活页面 Helper.EmailHelper email = new Helper.EmailHelper() { mailPwd = s_mailPwd, host = s_host, mailFrom = s_mailFrom, mailSubject = "[嗨-博客]激活码", mailBody = "欢迎激活 “嗨-博客”</br></br>您注册的的帐号:" + ((ModelDB.BlogUsersSet)Session[tempUserinfo]).UserName + " 激活码:" + Session[jihuoma].ToString(), mailToArray = new string[] { ((ModelDB.BlogUsersSet)Session[tempUserinfo]).UserMail } }; try { email.Send(); json.State = EnumState.正常重定向; json.Messg = "激活码已经发送邮箱~请注意查收~"; json.JSurl = "/UserManage/Activate"; jsdata = json; return(true); } catch (Exception ex) { json.State = EnumState.失败; json.Messg = ex.Message; jsdata = json; return(false); } #endregion }
public string Activate() { var json = new Common.CustomModel.JSData(); #region 1.判断是否从正常途径访问此页面 如果是的话 默认存在 Session[tempUserinfo] 2.如果是已经登录状态则直接无视 跳转 if (null == Session[tempUserinfo]) { json.State = EnumState.失败;//json.Messg = "请您通过正常途径访问激活页面~"; json.JSurl = "/"; return json.ToJson(); } if (BLLSession.UserInfoSessioin != null && !BLLSession.UserInfoSessioin.IsLock) { json.State = EnumState.失败; //json.Messg = "您都已经登录的还想获取激活码?别玩了~"; json.JSurl = "/"; return json.ToJson(); } #endregion var tempuser = ((ModelDB.BlogUsersSet)Session[tempUserinfo]); var activate = Request.Form["txt_activate"];//激活码 #region 2.验证激活码 (更新缓存 发送通知邮件 清空无用session) if (activate.Trim() == Session[jihuoma].ToString().Trim()) //验证激活码 { BLL.BlogUsersSetBLL user = new BLL.BlogUsersSetBLL(); var objuser = user.GetList(t => t.Id == tempuser.Id, isAsNoTracking: false).FirstOrDefault(); if (null != objuser) { objuser.IsLock = false; objuser.UserPass = tempuser.UserPass.MD5().MD5();//【】这里有个小BUG 暂未处理(如果是迁移的用户 这第一次登录需要激活密码) objuser.UserMail = tempuser.UserMail; } user.save(); #region bug 记录 //ModelDB.BlogUsers objuser = new ModelDB.BlogUsers(); //objuser.Id = id; //objuser.IsLock = false; // user.Up(objuser, "IsLock"); //这个方法 正常情况用没问题,如果先添加 然后修改就有问题 (不能用) #endregion bool islock = BLL.Common.CacheData.GetAllUserInfo(true).Where(t => t.Id == tempuser.Id).FirstOrDefault().IsLock; if (!islock) { #region 发送邮件 告知 激活成功 Helper.EmailHelper email = new Helper.EmailHelper() { mailPwd = s_mailPwd, host = s_host, mailFrom = s_mailFrom, mailSubject = "欢迎您注册 嗨-博客", mailBody = objuser.UserNickname + " 您好!欢迎注册 嗨-博客</br></br>" + "您注册的的帐号:" + objuser.UserName + //" 密码是:" + objuser.UserPass + "</br></br>" + "请您妥善保管~", mailToArray = new string[] { ((ModelDB.BlogUsersSet)Session[tempUserinfo]).UserMail } }; try { email.Send(); } catch (Exception) { } #endregion Session[jihuoma] = null; Session[tempUserinfo] = null; BLLSession.UserInfoSessioin = objuser; return new JSData() { Messg = "恭喜您~激活成功~", State = EnumState.正常重定向, JSurl = "/" }.ToJson(); } else { return new JSData() { Messg = "激活失败,请联系管理员~", State = EnumState.失败 }.ToJson(); } } #endregion return new JSData() { Messg = "您输入的激活码错误,你可以重新激活~", State = EnumState.失败 }.ToJson(); }
/// <summary> /// 获取激活码 (邮件发送成功 默认跳转到激活页面) /// </summary> /// <param name="username">用户名</param> /// <param name="mail">邮箱地址</param> /// <returns></returns> public bool GetActivate(out JSData jsdata) { var json = new Common.CustomModel.JSData(); #region 1.验证是否正常途径访问获取激活码 方法 if (null == Session[tempUserinfo]) { json.State = EnumState.失败; //json.Messg = "请您通过正常途径访问激活页面~"; json.JSurl = "/"; jsdata = json; return false; } #endregion Session[jihuoma] = new Random().Next(999999999).ToString(); #region 2.发送邮件 如果邮件发送成功 默认跳转到 激活页面 Helper.EmailHelper email = new Helper.EmailHelper() { mailPwd = s_mailPwd, host = s_host, mailFrom = s_mailFrom, mailSubject = "[嗨-博客]激活码", mailBody = "欢迎激活 “嗨-博客”</br></br>您注册的的帐号:" + ((ModelDB.BlogUsersSet)Session[tempUserinfo]).UserName + " 激活码:" + Session[jihuoma].ToString(), mailToArray = new string[] { ((ModelDB.BlogUsersSet)Session[tempUserinfo]).UserMail } }; try { email.Send(); json.State = EnumState.正常重定向; json.Messg = "激活码已经发送邮箱~请注意查收~"; json.JSurl = "/UserManage/Activate"; jsdata = json; return true; } catch (Exception ex) { json.State = EnumState.失败; json.Messg = ex.Message; jsdata = json; return false; } #endregion }
public string Activate() { var json = new Common.CustomModel.JSData(); #region 1.判断是否从正常途径访问此页面 如果是的话 默认存在 Session[tempUserinfo] 2.如果是已经登录状态则直接无视 跳转 if (null == Session[tempUserinfo]) { json.State = EnumState.失败;//json.Messg = "请您通过正常途径访问激活页面~"; json.JSurl = "/"; return(json.ToJson()); } if (BLLSession.UserInfoSessioin != null && !BLLSession.UserInfoSessioin.IsLock) { json.State = EnumState.失败; //json.Messg = "您都已经登录的还想获取激活码?别玩了~"; json.JSurl = "/"; return(json.ToJson()); } #endregion var tempuser = ((ModelDB.BlogUsersSet)Session[tempUserinfo]); var activate = Request.Form["txt_activate"];//激活码 #region 2.验证激活码 (更新缓存 发送通知邮件 清空无用session) if (activate.Trim() == Session[jihuoma].ToString().Trim()) //验证激活码 { BLL.BlogUsersSetBLL user = new BLL.BlogUsersSetBLL(); var objuser = user.GetList(t => t.Id == tempuser.Id, isAsNoTracking: false).FirstOrDefault(); if (null != objuser) { objuser.IsLock = false; objuser.UserPass = tempuser.UserPass.MD5().MD5();//【】这里有个小BUG 暂未处理(如果是迁移的用户 这第一次登录需要激活密码) objuser.UserMail = tempuser.UserMail; } user.save(); #region bug 记录 //ModelDB.BlogUsers objuser = new ModelDB.BlogUsers(); //objuser.Id = id; //objuser.IsLock = false; // user.Up(objuser, "IsLock"); //这个方法 正常情况用没问题,如果先添加 然后修改就有问题 (不能用) #endregion bool islock = BLL.Common.CacheData.GetAllUserInfo(true).Where(t => t.Id == tempuser.Id).FirstOrDefault().IsLock; if (!islock) { #region 发送邮件 告知 激活成功 Helper.EmailHelper email = new Helper.EmailHelper() { mailPwd = s_mailPwd, host = s_host, mailFrom = s_mailFrom, mailSubject = "欢迎您注册 嗨-博客", mailBody = objuser.UserNickname + " 您好!欢迎注册 嗨-博客</br></br>" + "您注册的的帐号:" + objuser.UserName + //" 密码是:" + objuser.UserPass + "</br></br>" + "请您妥善保管~", mailToArray = new string[] { ((ModelDB.BlogUsersSet)Session[tempUserinfo]).UserMail } }; try { email.Send(); } catch (Exception) { } #endregion Session[jihuoma] = null; Session[tempUserinfo] = null; BLLSession.UserInfoSessioin = objuser; return(new JSData() { Messg = "恭喜您~激活成功~", State = EnumState.正常重定向, JSurl = "/" }.ToJson()); } else { return(new JSData() { Messg = "激活失败,请联系管理员~", State = EnumState.失败 }.ToJson()); } } #endregion return(new JSData() { Messg = "您输入的激活码错误,你可以重新激活~", State = EnumState.失败 }.ToJson()); }
/// <summary> /// 获取激活码 (邮件发送成功 默认跳转到激活页面) /// </summary> /// <param name="username">用户名</param> /// <param name="mail">邮箱地址</param> /// <returns></returns> public bool GetActivate(ref JSData jsdata) { //验证是否正常途径访问获取激活码 方法 if (null == Session[tempUserinfo]) { jsdata.State = EnumState.失败; //json.Messg = "请您通过正常途径访问激活页面~"; jsdata.JSurl = "/"; return(false); } #region 频繁获取验证处理 if (Session["GetActivateTime"] == null) { Session["GetActivateTime"] = DateTime.Now; } if (Convert.ToDateTime(Session["GetActivateTime"]) > DateTime.Now) { jsdata.State = EnumState.失败; jsdata.Messg = "您获取激活码太过频繁,请15秒后再尝试。"; LogSave.WarnLogSave("IP:" + RequestHelper.GetIp() + "\r\n获取激活码频繁", "获取激活码频繁"); return(false); } Session["GetActivateTime"] = DateTime.Now.AddSeconds(15);//设置时间 #endregion //session记录激活码 Session[jihuoma] = new Random().Next(999999999).ToString(); #region 发送邮件 如果邮件发送成功 默认跳转到 激活页面 var tempSessionUser = (BlogUser)Session[tempUserinfo]; var nickName = string.IsNullOrEmpty(tempSessionUser.UserNickname) ? tempSessionUser.UserName : tempSessionUser.UserName; Helper.EmailHelper email = new Helper.EmailHelper() { mailPwd = s_mailPwd, host = s_host, mailFrom = s_mailFrom, mailSubject = "[嗨-博客]激活码", mailBody = EmailHelper.tempBody(nickName, " 激活码:" + Session[jihuoma].ToString()), mailToArray = new string[] { tempSessionUser.UserMail } }; try { email.Send(t => { LogSave.TrackLogSave("IP:" + RequestHelper.GetIp() + "\r\nToMail:" + tempSessionUser.UserMail + "\r\nBody:" + t.Body, "发送成功的邮件"); }, t => { LogSave.TrackLogSave("IP:" + RequestHelper.GetIp() + "\r\nToMail:" + tempSessionUser.UserMail + "\r\nBody:" + t.Body, "发送失败的邮件"); } ); jsdata.State = EnumState.正常重定向; jsdata.Messg = "激活码已经发送邮箱~请注意查收~"; jsdata.JSurl = "/UserManage/Activate"; return(true); } catch (Exception ex) { jsdata.State = EnumState.失败; jsdata.Messg = ex.Message; return(false); } #endregion }
/// <summary> /// 激活 (实际上是验证激活码后 修改用户信息:包括是否激活IsLock、邮箱地址、密码 ) /// </summary> /// <returns></returns> public string Activate() { var json = new JSData(); #region 1.判断是否从正常途径访问此页面 如果是的话 默认存在 Session[tempUserinfo] 2.如果是已经登录状态则直接无视 跳转 if (null == Session[tempUserinfo]) { json.State = EnumState.失败;//json.Messg = "请您通过正常途径访问激活页面~"; json.JSurl = "/"; return(json.ToJson()); } if (BLLSession.UserInfoSessioin != null && !BLLSession.UserInfoSessioin.IsLock) { json.State = EnumState.失败; //json.Messg = "您都已经登录的还想获取激活码?别玩了~"; json.JSurl = "/"; return(json.ToJson()); } #endregion var tempuser = ((BlogUser)HttpContext.Current.Session[tempUserinfo]); var activate = HttpContext.Current.Request.Form["txt_activate"];//激活码 #region 2.验证激活码 (更新缓存 发送通知邮件 清空无用session) if (activate.Trim() == Session[jihuoma].ToString().Trim()) //验证激活码 { BLL.BaseBLL <BlogUser> user = new BLL.BaseBLL <BlogUser>(); var objuser = user.GetList(t => t.Id == tempuser.Id, isAsNoTracking: false).FirstOrDefault(); var isEffectiveEmail = !string.IsNullOrEmpty(objuser.UserMail) && objuser.UserMail != "无效";//是否是有效邮箱(迁移用户是无效邮箱) if (null != objuser) { objuser.IsLock = false; objuser.UserPass = isEffectiveEmail ? tempuser.UserPass.MD5().MD5() : defaulPass.MD5().MD5(); objuser.UserMail = tempuser.UserMail; if (objuser.BlogUserInfo == null) { objuser.BlogUserInfo = new BlogUserInfo() { BlogUpNum = 0 }; } } user.save(); #region bug 记录 //BlogUsers objuser = new BlogUsers(); //objuser.Id = id; //objuser.IsLock = false; // user.Up(objuser, "IsLock"); //这个方法 正常情况用没问题,如果先添加 然后修改就有问题 (不能用) #endregion bool islock = GetDataHelper.GetAllUser().Where(t => t.Id == tempuser.Id).FirstOrDefault().IsLock; if (!islock) { #region 发送邮件 告知 激活成功 var tempSessionUser = (BlogUser)Session[tempUserinfo]; var nickName = string.IsNullOrEmpty(tempSessionUser.UserNickname) ? tempSessionUser.UserName : tempSessionUser.UserName; Helper.EmailHelper email = new Helper.EmailHelper() { mailPwd = s_mailPwd, host = s_host, mailFrom = s_mailFrom, mailSubject = "欢迎您注册 嗨-博客", mailBody = EmailHelper.tempBody(nickName, "欢迎注册 嗨-博客", "您注册的的帐号:" + objuser.UserName + " 密码是:" + (isEffectiveEmail ? tempuser.UserPass : defaulPass), "请您妥善保管~"), mailToArray = new string[] { tempSessionUser.UserMail } }; try { email.Send(t => { LogSave.TrackLogSave("IP:" + RequestHelper.GetIp() + "\r\nToMail:" + tempSessionUser.UserMail + "\r\nBody:" + t.Body, "发送成功的邮件"); }, t => { LogSave.TrackLogSave("IP:" + RequestHelper.GetIp() + "\r\nToMail:" + tempSessionUser.UserMail + "\r\nBody:" + t.Body, "发送失败的邮件"); } ); } catch (Exception) { } #endregion Session[jihuoma] = null; Session[tempUserinfo] = null; BLLSession.UserInfoSessioin = objuser; return(new JSData() { Messg = "恭喜您~激活成功~", State = EnumState.正常重定向, JSurl = "/" }.ToJson()); } else { return(new JSData() { Messg = "激活失败,请联系管理员~", State = EnumState.失败 }.ToJson()); } } #endregion return(new JSData() { Messg = "您输入的激活码错误,你可以重新激活~", State = EnumState.失败 }.ToJson()); }