示例#1
0
        public async Task <ActionResult> RegisterConfirmed(string id, string Email, params string[] SelectedRole)
        {
            if (ModelState.IsValid)
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                var user = await UserManager.FindByIdAsync(id);

                if (user == null)
                {
                    return(HttpNotFound());
                }
                user.ModifiedBy       = HttpContext.User.Identity.GetUserId();
                user.ModifiedDate     = DateTime.Now;
                user.Email            = Email;
                user.UserName         = Email;
                user.HasBeenActivated = true;
                user.Status           = true;
                if (SelectedRole != null)
                {
                    SelectedRole = SelectedRole ?? new string[] { };
                    var userRoles = await UserManager.GetRolesAsync(user.Id);

                    var result = await UserManager.AddToRolesAsync(user.Id, SelectedRole.Except(userRoles).ToArray <string>());

                    if (!result.Succeeded)
                    {
                        ModelState.AddModelError("", result.Errors.First());

                        return(View());
                    }
                    result = await UserManager.RemoveFromRolesAsync(user.Id, userRoles.Except(SelectedRole).ToArray <string>());

                    if (!result.Succeeded)
                    {
                        ModelState.AddModelError("", result.Errors.First());

                        return(View());
                    }
                }
                var activateResult = await UserManager.UpdateAsync(user);

                if (activateResult.Succeeded)
                {
                    string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);

                    var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    await UserManager.SendEmailAsync(user.Id, "Create Password", "Please create your password by clicking this link or pasting it in your browser: \n" + callbackUrl);

                    return(RedirectToAction("CreatePasswordConfirmation", "Account"));
                }
            }
            return(View());
        }
示例#2
0
        // To protect from overposting attacks, enable the specific properties you want to bind to, for
        // more details, see https://aka.ms/RazorPagesCRUD.
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var appUserToUpdate = await _userManager.FindByIdAsync(AppUser.Id);

            appUserToUpdate.UserName  = AppUser.UserName;
            appUserToUpdate.FirstName = AppUser.FirstName;
            appUserToUpdate.LastName  = AppUser.LastName;
            appUserToUpdate.Email     = AppUser.Email;

            var resultUpdate = await _userManager.UpdateAsync(appUserToUpdate);

            if (resultUpdate.Succeeded)
            {
                UserRoles = await _userManager.GetRolesAsync(AppUser);

                if (SelectedRole.Except(UserRoles).Count() != 0)
                {
                    var resultRoleAdd = await _userManager.AddToRolesAsync(appUserToUpdate, SelectedRole.Except(UserRoles).ToList <string>());
                }
                if (UserRoles.Except(SelectedRole).Count() != 0)
                {
                    var resultRoleRemove = await _userManager.RemoveFromRolesAsync(appUserToUpdate, UserRoles.Except(SelectedRole).ToList <string>());
                }

                if (!string.IsNullOrEmpty(ChangePassword))
                {
                    if (await _userManager.HasPasswordAsync(appUserToUpdate))
                    {
                        var resultRemove = await _userManager.RemovePasswordAsync(appUserToUpdate);
                    }
                    var resultAdd = await _userManager.AddPasswordAsync(appUserToUpdate, ChangePassword);
                }

                // if (LockoutEnabled != await _userManager.IsLockedOutAsync(appUserToUpdate) && await _userManager.GetLockoutEnabledAsync(appUserToUpdate))
                // {
                //     var resultLockout = await _userManager.SetLockoutEnabledAsync(appUserToUpdate, LockoutEnabled);
                // }
            }

            return(RedirectToPage("./Index"));
        }
示例#3
0
        public async Task <ActionResult> RetireConfirmed(string id, params string[] SelectedRole)
        {
            if (ModelState.IsValid)
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                var user = await UserManager.FindByIdAsync(id);

                if (user == null)
                {
                    return(HttpNotFound());
                }
                user.ModifiedBy   = HttpContext.User.Identity.GetUserId();
                user.ModifiedDate = DateTime.Now;
                user.Status       = !user.Status;

                if (user.Status == true & user.HasBeenActivated == false)
                {
                    user.HasBeenActivated = true;
                }

                if (SelectedRole != null)
                {
                    SelectedRole = SelectedRole ?? new string[] { };
                    var userRoles = await UserManager.GetRolesAsync(user.Id);

                    var result = await UserManager.AddToRolesAsync(user.Id, SelectedRole.Except(userRoles).ToArray <string>());

                    if (!result.Succeeded)
                    {
                        ModelState.AddModelError("", result.Errors.First());

                        return(View());
                    }
                    result = await UserManager.RemoveFromRolesAsync(user.Id, userRoles.Except(SelectedRole).ToArray <string>());

                    if (!result.Succeeded)
                    {
                        ModelState.AddModelError("", result.Errors.First());

                        return(View());
                    }
                }
                var activateResult = await UserManager.UpdateAsync(user);

                if (activateResult.Succeeded)
                {
                    if (user.Status == true)
                    {
                        await UserManager.SendEmailAsync(user.Id, "CMC account is activated", "Your account has been activated by a CMC member. You now have access to the CMC Data Portal.");
                    }
                    else if (user.Status == false)
                    {
                        await UserManager.SendEmailAsync(user.Id, "CMC account is deactivated", "Your account has been deactivated by a CMC member. You may no longer access to the CMC Data Portal.");
                    }
                    return(RedirectToAction("Index"));
                }
            }
            return(View());
        }