Exemplo n.º 1
0
        public async Task <IActionResult> ManageClaims(ManageClaimsViewModel vm)
        {
            var user = await _userManager.FindByIdAsync(vm.UserId);

            if (user == null)
            {
                return(RedirectToAction("Index"));
            }
            var claim = new IdentityUserClaim <string>
            {
                ClaimType  = vm.ClaimId,
                ClaimValue = vm.ClaimId
            };

            user.Claims.Add(claim);

            var result = await _userManager.UpdateAsync(user);

            if (result.Succeeded)
            {
                return(RedirectToAction("EditUser", new { id = vm.UserId }));
            }
            ModelState.AddModelError(String.Empty, "编辑用户Claims时发生错误");
            return(View(vm));
        }
        public async Task <IActionResult> ManageClaims(ManageClaimsViewModel vm)
        {
            var user = await _userManager.FindByIdAsync(vm.UserId);

            if (user == null)
            {
                return(RedirectToAction("Index"));
            }

            var claim = new IdentityUserClaim <string>
            {
                ClaimType  = vm.ClaimId,
                ClaimValue = vm.ClaimId
            };

            user.Claims.Add(claim);

            var result = await _userManager.UpdateAsync(user);

            if (result.Succeeded)
            {
                // 代码刷新登录状态,让 Claim 的修改立即生效
                var currentUser = await _userManager.GetUserAsync(HttpContext.User);

                if (currentUser.Id == vm.UserId)
                {
                    await _signInManager.RefreshSignInAsync(currentUser);
                }

                return(RedirectToAction("EditUser", new { id = vm.UserId }));
            }

            ModelState.AddModelError(string.Empty, "编辑用户 Claims 时发生错误");
            return(View(vm));
        }
        public async Task <IActionResult> ManageClaims(string id)
        {
            var user = await _userManager.FindByIdAsync(id);

            if (user == null)
            {
                return(RedirectToAction("Index"));
            }
            var vm = new ManageClaimsViewModel
            {
                UserId    = id,
                AllClaims = ClaimTypes.AllClaimTypesList
            };

            return(View(vm));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> ManageClaims(string id)
        {
            var user = await _userManger.FindByIdAsync(id);

            if (user == null)
            {
                ModelState.AddModelError(string.Empty, "用户找不到");
                return(RedirectToAction("Index"));
            }
            var vm = new ManageClaimsViewModel
            {
                UserId    = id,
                AllCliams = ClaimTypes.AllClaimTypeList
            };

            return(View(vm));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> ManageClaims(string id)
        {
            var user = await _userManager.Users.Include(n => n.Claims).Where(x => x.Id == id).FirstOrDefaultAsync();

            if (user == null)
            {
                return(RedirectToAction(nameof(Index)));
            }
            var userClaims = user.Claims.Select(x => x.ClaimType);
            var leftClaims = ClaimTypes.AllClaimTypeList.Except(userClaims).ToList();
            var vm         = new ManageClaimsViewModel
            {
                UserId          = id,
                AvailableClaims = leftClaims
            };

            return(View(vm));
        }
Exemplo n.º 6
0
        public async Task <IActionResult> ManageClaims(int id)
        {
            var user = await _userManager.Users.Include(x => x.Claims)
                       .Where(x => x.Id == id).SingleOrDefaultAsync();

            if (user == null)
            {
                return(RedirectToAction("Index"));
            }

            //var leftClaims = ClaimTypes.AllClaimTypeList.Except(user.Claims.Select(x => x.ClaimType)).ToList();
            var leftClaims = new List <string>();
            var vm         = new ManageClaimsViewModel
            {
                UserId          = id,
                AvailableClaims = leftClaims
            };

            return(View(vm));
        }
        public async Task <IActionResult> ManageClaims(string userId)
        {
            //var user = await _userManager.FindByIdAsync(userId);
            var user = await _userManager.Users.Include(x => x.Claims).Where(x => x.Id == userId)
                       .SingleOrDefaultAsync();

            if (user == null)
            {
                return(RedirectToAction("Index"));
            }

            var LeftClaims = AllClaimTypes.AllClaimTypeList.Except(user.Claims.Select(x => x.ClaimType)).ToList();
            var vm         = new ManageClaimsViewModel
            {
                userId   = userId,
                AllClims = /*AllClaimTypes.AllClaimTypeList*/ LeftClaims
            };

            return(View(vm));
        }