コード例 #1
0
        public async Task <IActionResult> OnPostEditRolesUserAsync(string userId, List <string> roles)
        {
            // �������� ������������
            LSFUser user = await _userManager.FindByIdAsync(userId);

            if (user != null)
            {
                if (User.IsInRole("Admin"))
                {
                    if (!roles.Contains("Admin"))
                    {
                        roles.Add("Admin");
                    }
                }
                // ������� ������ ����� ������������
                var userRoles = await _userManager.GetRolesAsync(user);

                // �������� ��� ����
                var allRoles = _roleManager.Roles.ToList();
                // �������� ������ �����, ������� ���� ���������
                var addedRoles = roles.Except(userRoles);
                // �������� ����, ������� ���� �������
                var removedRoles = userRoles.Except(roles);

                await _userManager.AddToRolesAsync(user, addedRoles);

                await _userManager.RemoveFromRolesAsync(user, removedRoles);

                return(RedirectToPage("./UserList"));
            }
            return(NotFound());
        }
コード例 #2
0
        public async Task <IActionResult> Edit(string userId, List <string> roles)
        {
            // получаем пользователя
            LSFUser user = await _userManager.FindByIdAsync(userId);

            if (user != null)
            {
                if (User.IsInRole("Admin"))
                {
                    if (!roles.Contains("Admin"))
                    {
                        roles.Add("Admin");
                    }
                }
                // получем список ролей пользователя
                var userRoles = await _userManager.GetRolesAsync(user);

                // получаем список ролей, которые были добавлены
                var addedRoles = roles.Except(userRoles);
                // получаем роли, которые были удалены
                var removedRoles = userRoles.Except(roles);

                await _userManager.AddToRolesAsync(user, addedRoles);

                await _userManager.RemoveFromRolesAsync(user, removedRoles);

                return(RedirectToAction("UserList"));
            }

            return(NotFound());
        }
コード例 #3
0
        public async void OnGet(string userId)
        {
            LSFUser user = await _userManager.FindByIdAsync(userId);

            if (user != null)
            {
                lockoutEndTime = user.LockoutEnd - DateTime.Now;
            }
        }
コード例 #4
0
        public async Task <IActionResult> DeleteUser(string userId)
        {
            LSFUser user = await _userManager.FindByIdAsync(userId);

            if (user != null)
            {
                await _userManager.DeleteAsync(user);
            }
            return(RedirectToAction("UserList"));
        }
コード例 #5
0
        public async Task <IActionResult> OnGetDeleteUserAsync(string userId)
        {
            LSFUser user = await _userManager.FindByIdAsync(userId);

            if (user != null)
            {
                IdentityResult result = await _userManager.DeleteAsync(user);

                StatusMessage = "Пользователь удален!";
            }
            return(RedirectToPage("./UserList"));
        }
コード例 #6
0
        public async Task <IActionResult> OnGetLockoutEndUser(string userId)
        {
            LSFUser user = await _userManager.FindByIdAsync(userId);

            if (user != null)
            {
                user.LockoutEnd = null;
                await _userManager.UpdateAsync(user);

                StatusMessage = "Пользователь разблокирован!";
            }
            return(RedirectToPage("./UserList"));
        }
コード例 #7
0
        private async Task LoadAsync(LSFUser user)
        {
            var email = await _userManager.GetEmailAsync(user);

            Email = email;

            Input = new InputModel
            {
                NewEmail = email,
            };

            IsEmailConfirmed = await _userManager.IsEmailConfirmedAsync(user);
        }
コード例 #8
0
        public async Task <IActionResult> OnGetLockoutEnabledUser(string userId)
        {
            LSFUser user = await _userManager.FindByIdAsync(userId);

            if (user != null)
            {
                user.LockoutEnd = DateTime.Now.AddYears(200);
                _userManager.ResetAuthenticatorKeyAsync(_userManager.FindByIdAsync(userId).Result);
                await _userManager.UpdateAsync(user);

                StatusMessage = "Пользователь заблокирован!";
            }
            return(RedirectToPage("./UserList"));
        }
コード例 #9
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl      = returnUrl ?? Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new LSFUser {
                    UserName = Input.Name, Email = Input.Login, EmailConfirmed = true
                };
                var result = await _userManager.CreateAsync(user, Input.Password + "!");

                if (result.Succeeded)
                {
                    LSFUser user1 = await _userManager.FindByIdAsync(_userManager.Users.Where(x => x.Email == user.Email).Select(x => x.Id).ToList()[0]);

                    List <string> roles = new List <string>()
                    {
                        "user"
                    };
                    if (user1 != null)
                    {
                        var userRoles = await _userManager.GetRolesAsync(user1);

                        var allRoles     = _roleManager.Roles.ToList();
                        var addedRoles   = roles.Except(userRoles);
                        var removedRoles = userRoles.Except(roles);

                        await _userManager.AddToRolesAsync(user1, addedRoles);

                        await _userManager.RemoveFromRolesAsync(user1, removedRoles);
                    }
                    await _signInManager.SignInAsync(user, isPersistent : false);

                    return(LocalRedirect(returnUrl));
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
コード例 #10
0
        public async Task <IActionResult> OnGetAsync(string userId)
        {
            LSFUser user = await _userManager.FindByIdAsync(userId);

            if (user != null)
            {
                var userRoles = await _userManager.GetRolesAsync(user);

                var allRoles = _roleManager.Roles.ToList();
                modelRole = new ChangeRoleViewModel
                {
                    UserId    = user.Id,
                    UserEmail = user.Email,
                    UserRoles = userRoles,
                    AllRoles  = allRoles
                };
                return(Page());
            }

            return(NotFound());
        }
コード例 #11
0
        public async Task <IActionResult> Edit(string userId)
        {
            // получаем пользователя
            LSFUser user = await _userManager.FindByIdAsync(userId);

            if (user != null)
            {
                // получем список ролей пользователя
                var userRoles = await _userManager.GetRolesAsync(user);

                var allRoles = _roleManager.Roles.ToList();
                ChangeRoleViewModel model = new ChangeRoleViewModel
                {
                    UserId    = user.Id,
                    UserEmail = user.Email,
                    UserRoles = userRoles,
                    AllRoles  = allRoles
                };
                return(View(model));
            }

            return(NotFound());
        }