public async Task <PasswordResetResult> ValidateRequest(string userEmail, string secret) { if (!await _identityProvider.VerifyUserExists(userEmail)) { return(PasswordResetResult.BadUsername); } if (!await _identityProvider.VerifyUserEmailConfirmed(userEmail)) { if (!await _identityProvider.VerifyUserPassword(userEmail, secret)) { return(PasswordResetResult.Expired(userEmail)); } } return(PasswordResetResult.Successful); }
public PasswordResetResult ValidateRequest(string userName, string secret) { if (!WebSecurity.UserExists(userName)) { return(PasswordResetResult.BadUsername); } if (!WebSecurity.IsConfirmed(userName)) { if (!WebSecurity.ConfirmAccount(userName, secret)) { return(PasswordResetResult.Expired(userName)); } } return(PasswordResetResult.Successful); }
private async Task <PasswordResetResult> ValidateResetModel(PasswordResetModel model) { var failedRequiredField = ValidateRequired <PasswordResetResult, PasswordResetModel>(x => x.Password, model) ?? ValidateRequired <PasswordResetResult, PasswordResetModel>(x => x.ConfirmPassword, model); if (failedRequiredField != null) { return(failedRequiredField); } var confirmationMismatch = !model.Password.Equals(model.ConfirmPassword); if (confirmationMismatch) { var mismatchResult = new PasswordResetResult { Message = "Password and Confirm Password must match.", Success = false }; mismatchResult.AddFailingField(x => x.Password) .AddFailingField(x => x.ConfirmPassword); return(mismatchResult); } if (!_passwordService.PasswordIsStrong(model.Password)) { return(PasswordResetResult.BadPassword); } var validateResetRequest = await _passwordService.ValidateRequest(model.Email, model.Marker); if (validateResetRequest.Success) { return(null); } return(validateResetRequest); }
public PasswordResetResult PasswordReset(string ProvinceID, string SPID, string TimeStamp, string CustID, string UserAccount, string NewPassword, string OPType) { PasswordResetResult Result = new PasswordResetResult(); Result.Result = ErrorDefinition.BT_IError_Result_UnknowError_Code; Result.CustID = CustID; Result.UserAccount = UserAccount; Result.ErrorDescription = ""; Result.ProvinceID = "35"; Result.ExtendField = ""; Result.Result = CommonBizRules.CheckIPLimit(SPID, HttpContext.Current.Request.UserHostAddress, this.Context, out Result.ErrorDescription); if (Result.Result != 0) { return Result; } //接口访问权限判断 Result.Result = CommonBizRules.CheckInterfaceLimit(SPID, "PasswordReset", this.Context, out Result.ErrorDescription); if (Result.Result != 0) { return Result; } try { if (CommonUtility.IsEmpty(ProvinceID)) { Result.Result = ErrorDefinition.BT_IError_Result_InValidProvinceID_Code; Result.ErrorDescription = ErrorDefinition.BT_IError_Result_InValidProvinceID_Msg + ",不能为空"; return Result; } if (ProvinceID.Length != ConstDefinition.Length_ProvinceID) { Result.Result = ErrorDefinition.BT_IError_Result_InValidProvinceID_Code; Result.ErrorDescription = ErrorDefinition.BT_IError_Result_InValidProvinceID_Msg + ",长度有误"; return Result; } ProvinceInfoManager proObject = new ProvinceInfoManager(); object proDataObject = proObject.GetProvinceData(this.Context); if (proObject.GetPropertyByProvinceID(ProvinceID, "ProvinceCode", proDataObject) == "") { Result.Result = ErrorDefinition.BT_IError_Result_InValidProvinceID_Code; Result.ErrorDescription = ErrorDefinition.BT_IError_Result_InValidProvinceID_Msg + ",无效的省标识"; return Result; } if (CommonUtility.IsEmpty(SPID)) { Result.Result = ErrorDefinition.BT_IError_Result_InValidSPID_Code; Result.ErrorDescription = ErrorDefinition.BT_IError_Result_InValidSPID_Msg + ",不能为空"; return Result; } if (SPID.Length != ConstDefinition.Length_SPID) { Result.Result = ErrorDefinition.BT_IError_Result_InValidSPID_Code; Result.ErrorDescription = ErrorDefinition.BT_IError_Result_InValidSPID_Msg + ",长度有误"; return Result; } if (CommonUtility.IsEmpty(CustID)) { Result.Result = ErrorDefinition.BT_IError_Result_InValidCustID_Code; Result.ErrorDescription = ErrorDefinition.BT_IError_Result_InValidCustID_Msg + ",不能为空"; return Result; } if (OPType != "0" & OPType != "1") { Result.Result = ErrorDefinition.IError_Result_InvalidRequestData_Code; Result.ErrorDescription = ErrorDefinition.IError_Result_InvalidRequestData_Msg + ",操作类型不对"; return Result; } if (CommonUtility.IsEmpty(UserAccount)) { Result.Result = ErrorDefinition.BT_IError_Result_InValidUserAccount_Code; Result.ErrorDescription = ErrorDefinition.BT_IError_Result_InValidUserAccount_Msg + ",不能为空"; return Result; } if (UserAccount.Length < ConstDefinition.Length_Min_UserAccount) { Result.Result = ErrorDefinition.BT_IError_Result_InValidUserAccount_Code; Result.ErrorDescription = ErrorDefinition.BT_IError_Result_InValidUserAccount_Msg + ",长度有误"; return Result; } if (UserAccount.Length > ConstDefinition.Length_Max_UserAccount) { Result.Result = ErrorDefinition.BT_IError_Result_InValidUserAccount_Code; Result.ErrorDescription = ErrorDefinition.BT_IError_Result_InValidUserAccount_Msg + ",长度有误"; return Result; } if (OPType == "0") //如果是修改密码则密码不能为空 { if (CommonUtility.IsEmpty(NewPassword)) { Result.Result = ErrorDefinition.BT_IError_Result_InValidPassword_Code; Result.ErrorDescription = ErrorDefinition.BT_IError_Result_InValidPassword_Msg + ",不能为空"; return Result; } if (NewPassword.Length < ConstDefinition.Length_Min_Password) { Result.Result = ErrorDefinition.BT_IError_Result_InValidPassword_Code; Result.ErrorDescription = ErrorDefinition.BT_IError_Result_InValidPassword_Msg + ",密码必须大于6位"; return Result; } } //如果是密码重置则随即分配密码 if (OPType == "1") { Random rd = new Random(); NewPassword = rd.Next(111111, 999999).ToString(); } string ContactTel = ""; string Email = ""; string RealName = ""; Result.Result = BTBizRules.PasswordReset(SPID, CustID, UserAccount, NewPassword, out Result.ErrorDescription, out ContactTel, out Email, out RealName); StringBuilder msg = new StringBuilder(); msg.Append("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n\r\n"); //如果是密码重置则发短信或发邮件通知用户 if (OPType == "1") { msg.Append("客户信息平台密码重置短信接口测试准备调用 " + DateTime.Now.ToString("u") + "\r\n"); msg.Append(ContactTel + "尊敬的" + RealName + "您好,您的密码已成功修改,您的卡号:" + UserAccount + "密码:" + NewPassword + ".请您牢记您的密码"); msg.Append("\r\n"); msg.Append("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n"); BTUCenterInterfaceLog.CenterForBizTourLog("PasswordReset", msg); CommonBizRules.SendMessage(ContactTel, "尊敬的" + RealName + "您好,您的密码已成功修改,您的卡号:" + UserAccount + "密码:" + NewPassword + ".请您牢记您的密码", "35000000"); } } catch (Exception e) { Result.Result = ErrorDefinition.IError_Result_System_UnknowError_Code; Result.ErrorDescription = ErrorDefinition.IError_Result_System_UnknowError_Msg + e.Message; } finally { try { #region WriteLog StringBuilder msg = new StringBuilder(); msg.Append("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n\r\n"); msg.Append("密码重置接口 " + DateTime.Now.ToString("u") + "\r\n"); msg.Append("ProvinceID - " + ProvinceID); msg.Append(";SPID - " + SPID); msg.Append(";UserAccount - " + UserAccount); msg.Append(";CustID - " + CustID); msg.Append(";NewPassword - " + NewPassword); msg.Append(";OPType - " + OPType); msg.Append(";TimeStamp - " + TimeStamp + "\r\n"); msg.Append("处理结果 - " + Result.Result); msg.Append("; 错误描述 - " + Result.ErrorDescription); msg.Append("; ProvinceID - " + Result.ProvinceID); msg.Append("; CustID - " + Result.CustID); msg.Append("; UserAccount - " + Result.UserAccount); msg.Append("; ExtendField - " + Result.ExtendField + "\r\n"); msg.Append("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n"); BTUCenterInterfaceLog.CenterForBizTourLog("PasswordReset", msg); #endregion CommonBizRules.WriteDataLog(SPID, CustID, UserAccount, Result.Result, Result.ErrorDescription, "", "PasswordReset"); } catch { } } return Result; }