public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } ApiResult result = new ApiResult(); using (var client = new HttpClient()) { client.BaseAddress = new Uri(Constants.API_BASE_URL); UserEmailInfo usernameEmail = userEmailModel.ToInfo(); _logger.LogDebug("start post ResetPwd"); using (var response = await client.PostAsJsonAsync <UserEmailInfo>("ResetPwd", usernameEmail)) { string apiResponse = await response.Content.ReadAsStringAsync(); result = JsonConvert.DeserializeObject <ApiResult>(apiResponse); _logger.LogDebug("ResetPwd returned result" + apiResponse); if (result.resultCode == ResultCode.SUCCESS) { HttpContext.Session.Set("_username", Encoding.ASCII.GetBytes(usernameEmail.UserName)); return(RedirectToPage("./VerifyCode")); } } } ViewData["Error"] = result.errMsg; _logger.LogInformation(result.errMsg); return(Page()); }
public ActionResult ResetPwd(UserEmailInfo usernameEmail) { this._logger.LogDebug("ResetPwd"); ApiResult result = new ApiResult(); if (IsRegistered(usernameEmail.UserName)) { string emailAddr = GetEmailAddress(usernameEmail.UserName); usernameEmail.EmailAddr = emailAddr; if (SendVerifyCode(usernameEmail)) { result.resultCode = ResultCode.SUCCESS; result.errMsg = "Success"; } else { result.resultCode = ResultCode.SEND_EMAIL_FAILED; result.errMsg = "Sending verification code to the registered email address failed."; } } else { if (IsValidOracleUser(usernameEmail.UserName)) { result.resultCode = ResultCode.USER_NOT_REGISTERED; result.errMsg = "You have not yet registered for the Password Reset service. Please register now."; } else { result.resultCode = ResultCode.INVALID_ORACLE_USERNAME; result.errMsg = "The entered Oracle username is invalid."; } } return(Ok(result)); }
public UserEmailInfo ToInfo() { UserEmailInfo uei = new UserEmailInfo(); uei.UserName = this.UserName; uei.EmailAddr = this.EmailAddr; return(uei); }
private bool SendEmail(UserEmailInfo usernameEmail, string verifyCode, string expireTime) { string content = "Dear " + usernameEmail.UserName + ",<br/> " + "<p>Your Oracle password recovery verification code is " + verifyCode + " ." + " Please note that this recovery code will expire at " + expireTime + "(5 minutes from your reset request).</p>"; return(EmailUtil.SendEmail(usernameEmail.EmailAddr, content)); }
private bool SendEmail(UserEmailInfo usernameEmail, string verifyCode, string expireTime) { string content = "Dear " + usernameEmail.UserName + ",<br/> " + "<p>Your Oracle password recovery verification code is " + verifyCode + " ." + " Please note that this recovery code will expire at " + expireTime + "(5 minutes from your reset request).</p><br/><br/>" + "Sierra System"; EmailUtil.SendEmailWithGoogle(usernameEmail.EmailAddr, content); //EmailUtil.SendEmailAsyncWithSendGrid(usernameEmail.EmailAddr, content); return(true); }
public bool IsEmailValid(UserEmailInfo userInfo) { try { bool result = false; var dbConnection = this.GetConnection(); if (dbConnection.State == System.Data.ConnectionState.Closed) { dbConnection.Open(); _logger.LogInformation("oracle connection opened."); } if (dbConnection.State == System.Data.ConnectionState.Open) { using (OracleCommand cmd = dbConnection.CreateCommand()) { try { cmd.CommandText = @"SELECT * FROM oracle_pwd_reset_users WHERE username=:username and emailaddr=:email"; OracleParameter[] parameters = new OracleParameter[] { new OracleParameter("username", userInfo.UserName), new OracleParameter("email", userInfo.EmailAddr) }; cmd.Parameters.AddRange(parameters); OracleDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { result = true; break; } reader.Dispose(); dbConnection.Close(); _logger.LogInformation("oracle connection closed."); } catch (Exception ex) { _logger.LogError(ex, ex.Message, null); return(false); } } } return(result); } catch (Exception ex) { _logger.LogError(ex, ex.Message, null); return(false); } }
private bool SendVerifyCode(UserEmailInfo usernameEmail) { string verifyCode = RandomString.GenerateRandomString(8); DateTime expiredTime = DateTime.Now.AddMinutes(Constants.VERIFY_CODE_VALID_MINS); bool result = SendEmail(usernameEmail, verifyCode, expiredTime.ToString()); if (result) { UserResetPwdInfo urpi = new UserResetPwdInfo(); urpi.UserName = usernameEmail.UserName; urpi.EmailAddr = usernameEmail.EmailAddr; urpi.VerificationCode = verifyCode; urpi.VerifyCodeExpiredTime = expiredTime.ToString(); _oracleUserRepo.AddVerificationInfo(urpi); } return(result); }
public UserEmailInfo QueryEmailByUserId(string userId) { using (var manager = new BettingPointManager()) { UserEmailInfo info = new UserEmailInfo(); var entity = manager.GetUserEmail(userId); if (entity == null) { return(info); } info.AuthFrom = entity.AuthFrom; info.CreateBy = entity.CreateBy; info.CreateTime = entity.CreateTime; info.Email = entity.Email; info.IsSettedEmail = entity.IsSettedEmail; info.RequestTimes = entity.RequestTimes; info.UserId = entity.UserId; return(info); } }
private bool IsEmailValid(UserEmailInfo usernameEmail) { return(_oracleUserRepo.IsEmailValid(usernameEmail)); }