示例#1
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            var role = Request.Form["SelectedRole"];

            returnUrl      = returnUrl ?? Url.Content("~/Users");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new WarehouseUser {
                    UserName = Input.Email, Email = Input.Email, EmailConfirmed = true, Name = Input.Name
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    await _userManager.AddToRoleAsync(user, role);

                    _logger.LogInformation("User created a new account with password.");
                    return(LocalRedirect(returnUrl));
                }

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

            var roles = _roleManager.Roles.ToList();

            Staff = new SelectList(roles);
            return(Page());
        }
示例#2
0
        public async Task <IActionResult> Edit(string userId, List <string> roles, string userName)
        {
            // получаем пользователя
            WarehouseUser user = await _userManager.FindByIdAsync(userId);

            if (user != null)
            {
                // получем список ролей пользователя
                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);

                //_userManager.NormalizeName(_NormalizeName);
                var _user = _db.Users.FirstOrDefault(a => a.Id == userId);
                _user.Name = userName;
                await _db.SaveChangesAsync();

                return(RedirectToPage("/Account/Manage/Admin", new { area = "Identity" }));
            }
            return(NotFound());
        }
示例#3
0
        public async void CreateUser(UserManager <WarehouseUser> _userManager,
                                     SignInManager <WarehouseUser> _signInManager,
                                     ApplicationDbContext _context,
                                     string _email,
                                     string _password)
        {
            var user = new WarehouseUser {
                UserName = _email, Email = _email
            };
            var result = await _userManager.CreateAsync(user, _password);

            var signin = await _signInManager.PasswordSignInAsync(_email, _password, true, lockoutOnFailure : false);
        }
        public async Task <ActionResult> Delete(string Id)
        {
            WarehouseUser user = await _userManager.FindByIdAsync(Id);

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

                if (result.Succeeded)
                {
                    return(Json(new { success = true, message = "Успешное удаление" }));
                }
            }
            return(Json(new { success = true, message = "Ошибка удаление" }));
        }
示例#5
0
        public async Task <ActionResult> Delete(string id)
        {
            WarehouseUser user = await _userManager.FindByIdAsync(id);

            if (user != null)
            {
                if (!_userManager.IsInRoleAsync(user, "Admin").Result)
                {
                    await _userManager.DeleteAsync(user);

                    return(RedirectToPage("/Account/Manage/Admin", new { area = "Identity" }));
                }
            }
            return(RedirectToPage("/Account/Manage/Admin", new { area = "Identity" }));
        }
示例#6
0
        /// <summary>
        /// Страница редактирования ролей пользователя
        /// </summary>
        /// <param name="userId">Уникальный идентификатор пользователя</param>
        /// <returns>Возвращает представление для редактирования</returns>
        public async Task <IActionResult> Edit(string userId)
        {
            // получаем пользователя
            WarehouseUser 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,
                    UserName  = user.Name,
                    UserEmail = user.Email,
                    UserRoles = userRoles,
                    AllRoles  = allRoles
                };
                return(View(model));
            }

            return(NotFound());
        }