public bool RetrievePwd(JeuciAccount jeuciAccount, string newPassword, string validCodeStr, out string urlOrMsg) { jeuciAccount.SynchronWechatUserInfo(_wechatAuthentManager); jeuciAccount.SynchronUserInfo(_userRepository); if (!jeuciAccount.IsExistAccount) { LogHelper.Logger.Error("获取用户个人信息失败"); throw new Exception("获取您的个人信息失败,请与我们联系"); } var emialPolicy = new EmailPolicy(); var validCode = CacheHelper.GetCache <EmailValidCode>(m_retrievePwdCachePrefix + jeuciAccount.OpenId); if (!emialPolicy.ValidEmailCode(validCode, validCodeStr, out urlOrMsg)) { return(false); } jeuciAccount.UserInfo.Password = newPassword; try { _userRepository.Update(jeuciAccount.UserInfo); urlOrMsg = string.Format("/wechat/account/#/wechatforjeuci?isNeedCallBack=False&openId={0}", jeuciAccount.OpenId); return(true); } catch (Exception e) { urlOrMsg = e.Message; return(false); } }
public void AddEmail(int id, string email, EmailPolicy policy) { DbCommand comm = GetCommand("SPUsersUpdateEmail"); comm.AddParameter<int>(this.Factory, "UserId", id); comm.AddParameter<string>(this.Factory, "UserEmail", email); comm.AddParameter(this.Factory, "UserEmailPolicy", DbType.Int32, (int)policy); comm.SafeExecuteNonQuery(); }
public Task <bool> SendValidByEmail(string openId, string emailAddress) { var bindEmailPolicy = new EmailPolicy(); var validCode = bindEmailPolicy.GetBindEmailValidCode(EmailValidCodeType.BindEmail); CacheHelper.SetCache(openId, validCode); var emailBody = bindEmailPolicy.GetEmailBody(validCode); return(_directEmailService.SendValidCodeByEmail(emailAddress, emailBody, "彩盟网邮箱绑定验证码")); }
public Task <bool> SendRetrievePwdValidCode(string openId, string email) { var emailPolicy = new EmailPolicy(); var validCode = emailPolicy.GetBindEmailValidCode(EmailValidCodeType.RetrievePwd); CacheHelper.SetCache(m_retrievePwdCachePrefix + openId, validCode); var emailBody = emailPolicy.GetEmailBody(validCode); return(_directEmailService.SendValidCodeByEmail(email, emailBody, "彩盟网密码找回")); }
/// <exception cref="ValidationException"> /// Throws ValidationException when email is invalid (null or not email) /// </exception> public void AddEmail(int id, string email, EmailPolicy policy) { #region Validate Email //To get the same regex used in all the site. var regexAttribute = new EmailFormatAttribute(); if (String.IsNullOrEmpty(email)) { throw new ValidationException(new ValidationError("email", ValidationErrorType.NullOrEmpty)); } else if (!Regex.IsMatch(email, regexAttribute.Regex, regexAttribute.RegexOptions)) { throw new ValidationException(new ValidationError("email", ValidationErrorType.Format)); } #endregion _dataAccess.AddEmail(id, email, policy); }
public bool BindUserEmail(BindEmailModel model, out string msgOrUrl) { var validCode = CacheHelper.GetCache <EmailValidCode>(model.OpenId); if (validCode == null) { LogHelper.Logger.Info("缓存过期,没有获取到电子邮件验证码"); throw new Exception("验证码超时,请重新获取电子邮件验证码"); } var bindEmailPolicy = new EmailPolicy(); if (!bindEmailPolicy.ValidEmailCode(validCode, model.ValidCode, out msgOrUrl)) { return(false); } var jeuciAccount = new JeuciAccount(model.OpenId, model.AccountName, model.Password, AccountOperateType.BindEmail); jeuciAccount.SynchronUserInfo(_useRepository); var jueciAccountPolicy = new JeuciAccountPolicy(jeuciAccount); if (!jueciAccountPolicy.ValidAccountLegality(out msgOrUrl)) { return(false); } jeuciAccount.UserInfo.SafeEmail = model.SafeEmail; try { _useRepository.Update(jeuciAccount.UserInfo); msgOrUrl = string.Format("/wechat/account/#/wechatforjeuci?isNeedCallBack=False&openId={0}", model.OpenId); return(true); } catch (Exception e) { msgOrUrl = e.Message; return(false); } }