コード例 #1
0
        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());
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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());
        }