public async Task TestForgotUserName2() { var controller = new AccountController(); var forgotUserName = new ForgotUsernameViewModel { Email = "*****@*****.**" }; controller = InitOwinContext(controller); var result = await controller.ForgotUsername(forgotUserName); Assert.IsInstanceOf(typeof(ViewResult), result); }
public async Task <ActionResult> ForgotUsername(ForgotUsernameViewModel forgotUsername) { var recaptcha = new ReCaptcha(); var responseFromServer = recaptcha.OnActionExecuting(); if (responseFromServer.StartsWith("true", StringComparison.Ordinal)) { if (forgotUsername != null && ModelState.IsValid) { var userByEmail = await DatabaseContext.RegisteredUsers.Find(new BsonDocument { { "Account.Email", forgotUsername.Email } }).ToListAsync(); if (userByEmail.Count > 0) { using (var mail = new MailMessage()) { mail.To.Add(forgotUsername.Email); mail.Subject = "Royal Holloway LETS Username Recovery"; mail.Body = "<p>Hello " + userByEmail[0].About.FirstName + ",</p><h3>Forgotten your username?</h3><p>We got a request about your Royal Holloway LETS account's username.<br/>Please find your username highlighted in bold below.<br/></p><h2>" + userByEmail[0].Account.UserName + "</h2><p>All the best,<br/>Royal Holloway LETS</p>"; SendEmail(mail); ModelState.AddModelError("Success", "Please check you email, We have sent you your username."); forgotUsername.Email = null; } } else { ModelState.AddModelError("Email", "Sorry, The Email you provided is not present in our system."); return(View(forgotUsername)); } } } else { ModelState.AddModelError("ReCaptcha", "Incorrect CAPTCHA entered."); return(View(forgotUsername)); } return(View()); }
public async Task <ViewResult> ForgotUserName(ForgotUsernameViewModel unameForgot) { if (!ModelState.IsValid) { ModelState.AddModelError(nameof(unameForgot.Email), "Uw emailadres is incorrect, controleer dit aub"); } else { var user = await _userManager.FindByEmailAsync(unameForgot.Email); //searching user by name if (user == null) //user not found { ModelState.AddModelError(nameof(unameForgot.Email), "Uw emailadres is incorrect, controleer dit aub"); } else { await SendEmail(user, new ForgotUsernameMailMessageBuilder(user.UserName)); return(View("ForgotUserNameEnd")); //succeeded } } return(View()); }
//public ForgotUsernameController() //{ // userAccountService = new UserAccountService(); //} // GET: ForgotUsername public ActionResult InitiateFindUser() { logger.Debug("ForgotUsername_Index"); //set parameters string relayState = Request["relayState"]; if (string.IsNullOrEmpty(relayState) && Request.QueryString["RelayState"] != null) { relayState = Request.QueryString["RelayState"]; } else if (string.IsNullOrEmpty(relayState) && TempData["relayState"] != null) { relayState = (string)TempData["relayState"]; } TempData["relayState"] = relayState; ForgotUsernameViewModel forgotUsername = new ForgotUsernameViewModel(); ViewBag.IsNotFound = false; return(View("InitiateFindUser", forgotUsername)); }
public ActionResult CheckForUser(ForgotUsernameViewModel forgotUsernameViewModel) { logger.Debug("CheckForUser"); CustomUser customUser = null; ViewBag.IsNotFound = false; if (!ModelState.IsValid) { return(View("Index", forgotUsernameViewModel)); } //need to check against custom user profile since aicpaId is part of criteria //ajc debug //this implementation contains support for multiple return users //for now, returned records greater than 1 is considered an error System.Text.StringBuilder buildFilter = null; // build buildFilter //pagelimit cannot exceed 200 buildFilter = new System.Text.StringBuilder(); buildFilter.Append("status eq \"ACTIVE\" and "); buildFilter.Append("profile.lastName eq \"" + forgotUsernameViewModel.LastName + "\" and "); buildFilter.Append("profile.policyNumber eq \"" + forgotUsernameViewModel.policyNumber + "\""); //buildFilter.Append("&limit=8"); PagedResults <CustomUser> pagedCustomUser; //CustomUserProfile customUserProfile = new CustomUserProfile(); Uri myNextPage = null; bool isThisLastPage = true; do { if (isThisLastPage) { pagedCustomUser = oktaUserMgmt.ListCustomUsersExtended(searchType: "search", criteria: buildFilter.ToString()); } else { pagedCustomUser = oktaUserMgmt.ListCustomUsersExtended(searchType: "search", criteria: buildFilter.ToString(), nextPage: myNextPage); } isThisLastPage = pagedCustomUser.IsLastPage; myNextPage = pagedCustomUser.NextPage; int rspCount = pagedCustomUser.Results.Count; foreach (var customUser1 in pagedCustomUser.Results) { logger.Debug("oktaId= " + customUser1.Id + " customId= " + customUser1.Profile.customId + " lastName= " + customUser1.Profile.LastName); } if (rspCount == 1) { logger.Debug("successful; found single user "); //send email with userName/email customUser = pagedCustomUser.Results[0]; TempData["firstName"] = customUser.Profile.FirstName; TempData["userName"] = customUser.Profile.Login; SendEmail(customUser); var routeValues = new RouteValueDictionary(); routeValues.Add("login", pagedCustomUser.Results[0].Profile.Login); routeValues.Add("email", pagedCustomUser.Results[0].Profile.Email); return(RedirectToAction("UserFound", routeValues)); } else { logger.Error("Error found " + rspCount.ToString() + " users matching criteria"); return(RedirectToAction("UserNOTFound")); } } while (!isThisLastPage); }