コード例 #1
0
        public virtual async Task <IActionResult> SendResetUserPasswordMail(Guid userId)
        {
            var user = await this.identityService.GetUserByIdAsync <User>(userId);

            if (user != null)
            {
                var resetToken = await this.identityService.GeneratePasswordResetTokenAsync(user);

                var resetPasswordUrl = this.Url.Action("ResetPassword", "AdminAccount", new { userId = userId, resetToken = resetToken }, this.HttpContext.Request.Scheme);

                var mailModel = new UserResetPasswordEmailModel
                {
                    Email            = user.Email,
                    Subject          = "Password Reset",
                    GivenName        = user.FirstName,
                    Surname          = user.LastName,
                    resetPasswordUrl = resetPasswordUrl,
                };
                var result = await this.emailService.SendEmailAsync("UserResetPasswordEmailView", mailModel);

                if (result.Success)
                {
                    this.TempData["SuccessStatusMessage"] =
                        $"Password reset email to {mailModel.Email} has been sent successfully.";
                }
                else
                {
                    this.TempData["ErrorStatusMessage"] = $"An error occured while sending email to {mailModel.Email}.";
                }

                return(this.RedirectToAction(nameof(this.GetAll)));
            }

            return(this.NotFound());
        }
コード例 #2
0
        public virtual async Task <IActionResult> CreateNewUser(AdminCreateNewUserViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var selectedRole = await this.EntityManager.GetEntityAsync <Role, Role>(model.Role);

                var user = await this.authenticationService.CreateUserAsync <User>(
                    model.Email,
                    StringFunctions.GenerateRandomPassword(),
                    model.FirstName,
                    model.LastName,
                    new string[] { selectedRole.Name });

                if (user != null)
                {
                    var resetToken = await this.identityService.GeneratePasswordResetTokenAsync(user);

                    var resetPasswordUrl = this.Url.Action("ResetPassword", "AdminAccount", new { userId = user.Id, resetToken = resetToken }, this.HttpContext.Request.Scheme);

                    var mailModel = new UserResetPasswordEmailModel
                    {
                        Email            = user.Email,
                        Subject          = "Password Reset",
                        GivenName        = user.FirstName,
                        Surname          = user.LastName,
                        resetPasswordUrl = resetPasswordUrl,
                    };
                    var result = await this.emailService.SendEmailAsync("UserResetPasswordEmailView", mailModel);

                    if (result.Success)
                    {
                        this.TempData["SuccessStatusMessage"] =
                            $"User has been created successfully.";
                    }
                    else
                    {
                        this.TempData["ErrorStatusMessage"] = $"An error occured while creating user.";
                    }

                    return(this.RedirectToAction(nameof(this.GetAll)));
                }
            }

            return(this.View(model));
        }