public async Task <IHttpActionResult> ForgotPassword(PasswordFunctionsModel model) { var foundUser = await this.UserManager.FindByNameAsync(model.UserName); if (foundUser == null) { return(this.BadRequest("User doesn't exist")); } await this.UserManager.RemovePasswordAsync(foundUser.Id); var newPassword = Guid.NewGuid().ToString().Replace("-", string.Empty).Substring(0, 7); await this.UserManager.AddPasswordAsync(foundUser.Id, newPassword); // TODO: make generic service with parameters // var message = new MailMessage(); // message.To.Add(foundUser.UserName); // message.To.Add(ConfigurationManager.AppSettings[ChangePasswordEmailAddressName]); // message.Subject = Resources.ChangeMessageSubject; // message.From = new MailAddress(ConfigurationManager.AppSettings[ChangePasswordEmailAddressName]); // message.Body = "Your new password is now " + newPassword; // // var smtp = new SmtpClient("smtp.office365.com", 587) // { // Credentials = new NetworkCredential("<add username to web.config>", "<add password to web.config>"), // EnableSsl = true // }; // smtp.Send(message); return(this.Ok()); }
public async Task <IHttpActionResult> PostPassword(PasswordFunctionsModel adminSetPasswordModel) { if (!this.ModelState.IsValid || !this.User.IsInRole(UserRoles.Admin)) { return(this.BadRequest()); } var foundUser = await this.UserManager.FindByNameAsync(adminSetPasswordModel.UserName); if (foundUser == null) { return(this.NotFound()); } var removePasswordResult = await this.UserManager.RemovePasswordAsync(foundUser.Id); if (!removePasswordResult.Succeeded) { return(this.NotFound()); } var setPasswordResult = await this.UserManager.AddPasswordAsync(foundUser.Id, adminSetPasswordModel.NewPassword); if (setPasswordResult.Succeeded) { return(this.Ok()); } return(this.NotFound()); }
public async Task <IHttpActionResult> SetAdmin(PasswordFunctionsModel roleModel) { if (!ModelState.IsValid || !this.User.IsInRole(UserRoles.Admin)) { return(this.BadRequest("Requesting user not an admin.")); } return(await this.SetRole(UserRoles.Admin, roleModel.UserName)); }
public async Task <IHttpActionResult> SetPassword(PasswordFunctionsModel model) { var result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword); var errorResult = GetErrorResult(result); if (errorResult != null) { return(errorResult); } return(Ok()); }