コード例 #1
0
        public async Task <IActionResult> AddRemoveClaims(UserClaimsViewModel userClaimsViewModel)
        {
            ApplicationUser applicationUser = await userManager.FindByIdAsync(userClaimsViewModel.UserId);

            if (applicationUser == null)
            {
                ViewBag.Message = $"The user with the id:{userClaimsViewModel.UserId} is not available.";
                return(View("PageNotFound"));
            }
            else
            {
                var userClaims = await userManager.GetClaimsAsync(applicationUser);

                var result = await userManager.RemoveClaimsAsync(applicationUser, ClaimsStore.AllClaims);

                if (!result.Succeeded)
                {
                    ModelState.AddModelError("", "Cannot remove user claims");
                    return(View(userClaimsViewModel));
                }

                result = await userManager.AddClaimsAsync(applicationUser,
                                                          userClaimsViewModel.Claims.Where(c => c.IsSelected).Select(c => new Claim(c.ClaimType, c.ClaimType)));

                if (!result.Succeeded)
                {
                    ModelState.AddModelError("", "Error in adding claims to user");
                    return(View(userClaimsViewModel));
                }

                return(RedirectToAction("UpdateUser", "Administrator", new { userid = userClaimsViewModel.UserId }));
            }
            return(View());
        }
コード例 #2
0
        public async Task <IActionResult> ManageUserClaims(UserClaimsViewModel model)
        {
            var user = await userManager.FindByIdAsync(model.UserId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with Id = {model.UserId} cannot be found";
                return(View("NotFound"));
            }

            // Get all the user existing claims and delete them
            var claims = await userManager.GetClaimsAsync(user);

            var result = await userManager.RemoveClaimsAsync(user, claims);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Cannot remove user existing claims");
                return(View(model));
            }

            // Add all the claims that are selected on the UI
            result = await userManager.AddClaimsAsync(user,
                                                      model.Cliams.Where(c => c.IsSelected).Select(c => new Claim(c.ClaimType, c.ClaimType)));

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Cannot add selected claims to user");
                return(View(model));
            }

            return(RedirectToAction("EditUser", new { Id = model.UserId }));
        }
コード例 #3
0
        public async Task <IActionResult> ManageUserClaims(UserClaimsViewModel model)
        {
            var user = await userManager.FindByIdAsync(model.UserId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with Id = {model.UserId} cannot be found";
                return(View("NotFound"));
            }

            var claims = await userManager.GetClaimsAsync(user);

            var result = await userManager.RemoveClaimsAsync(user, claims);

            if (!result.Succeeded)
            {
                ModelState.AddModelError(string.Empty, "Cannot remove user existing claims");
                return(View(model));
            }

            result = await userManager.AddClaimsAsync(user,
                                                      model.Claims.Select(c => new Claim(c.ClaimType, c.IsSelected ? "true" : "false")));

            if (!result.Succeeded)
            {
                ModelState.AddModelError(string.Empty, "Cannot add selected claims to user");
                return(View(model));
            }

            return(RedirectToAction("EditUser", new { Id = model.UserId }));
        }
コード例 #4
0
        public async Task <IActionResult> ManageUserClaims(UserClaimsViewModel model)
        {
            var user = await userManager.FindByIdAsync(model.UserId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"The User with Id = {model.UserId} cannot be found";
                return(View("NotFoundError"));
            }

            var claims = await userManager.GetClaimsAsync(user);

            var result = await userManager.RemoveClaimsAsync(user, claims);

            if (result.Succeeded)
            {
                var addClaimResult = await userManager.AddClaimsAsync(user, model.Claims.Where(
                                                                          c => c.IsSelected).Select(c => new Claim(c.ClaimType, c.ClaimType)));

                if (addClaimResult.Succeeded)
                {
                    return(RedirectToAction("EditUser", new { id = model.UserId }));
                }
            }
            ViewBag.ErrorMessage = $" Error Occured While Modiying User Claims for the user with Id = {model.UserId}";
            return(View("NotFoundError"));
        }
コード例 #5
0
        public async Task <IActionResult> ManageUserClaims(string userId)
        {
            var user = await userManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(View("_Error"));
            }
            var existingUserClaims = await userManager.GetClaimsAsync(user);

            var model = new UserClaimsViewModel
            {
                UserId = userId
            };

            foreach (Claim claim in ClaimsStore.AllClaims)
            {
                UserClaim userClaim = new UserClaim
                {
                    ClaimType = claim.Type
                };
                if (existingUserClaims.Any(x => x.Type == claim.Type && x.Value == "true"))
                {
                    userClaim.IsSelected = true;
                }
                model.Claims.Add(userClaim);
            }
            return(View(model));
        }
コード例 #6
0
        public async Task <IActionResult> ManageUserClaims(UserClaimsViewModel userClaimsViewModel)
        {
            IdentityUser user = await _userManager.FindByIdAsync(userClaimsViewModel.UserId);

            if (user == null)
            {
                return(NotFound());
            }

            var claims = await _userManager.GetClaimsAsync(user);

            var result = await _userManager.RemoveClaimsAsync(user, claims);

            if (!result.Succeeded)
            {
                TempData[SD.Error] = "Error while removing claims";
                return(View(userClaimsViewModel));
            }

            result = await _userManager.AddClaimsAsync(user,
                                                       userClaimsViewModel.Claims.Where(c => c.IsSelected).Select(c => new Claim(c.ClaimType, c.IsSelected.ToString()))
                                                       );

            if (!result.Succeeded)
            {
                TempData[SD.Error] = "Error while adding claims";
                return(View(userClaimsViewModel));
            }

            TempData[SD.Success] = "Claims updated successfully";
            return(RedirectToAction(nameof(Index)));
        }
コード例 #7
0
        public async Task <IActionResult> ManageUserClaims(string userId)
        {
            ViewBag.userId = userId;
            ApplicationUser user = await userManager.FindByIdAsync(userId);

            var existingUserClaims = await userManager.GetClaimsAsync(user);

            UserClaimsViewModel model = new UserClaimsViewModel
            {
                UserId = userId
            };

            foreach (Claim claim in AdminClaims.AllClaims)
            {
                UserClaim userClaim = new UserClaim
                {
                    ClaimType = claim.Type
                };

                if (existingUserClaims.Any(c => c.Type == claim.Type && c.Value == "true"))
                {
                    userClaim.IsSelected = true;
                }

                model.Claims.Add(userClaim);
            }

            return(View(model));
        }
        public async Task <IActionResult> ManageUserClaims(string userId)
        {
            var user = await userManager.FindByIdAsync(userId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with Id = {userId} cannot be found";
                return(View("NotFound"));
            }

            // UserManager service GetClaimsAsync method gets all the current claims of the user
            var existingUserClaims = await userManager.GetClaimsAsync(user);

            var model = new UserClaimsViewModel
            {
                UserId = userId
            };

            // Loop through each claim we have in our application
            foreach (Claim claim in ClaimsStore.AllClaims)
            {
                UserClaim userClaim = new UserClaim
                {
                    ClaimType = claim.Type
                };

                if (existingUserClaims.Any(c => c.Type == claim.Type))
                {
                    userClaim.IsSelected = true;
                }

                model.Claims.Add(userClaim);
            }
            return(View(model));
        }
コード例 #9
0
        public async Task <IActionResult> ManageUserClaims(UserClaimsViewModel model)
        {
            var user = await userManager.FindByIdAsync(model.UserId);

            if (user == null)
            {
                ViewBag.Message = $"Korisnik nije pronađen!";
                return(View("PageNotFound"));
            }


            var claims = await userManager.GetClaimsAsync(user);

            var result = await userManager.RemoveClaimsAsync(user, claims);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Nije moguće ukloniti dozvolu za korisnika.");
                return(View(model));
            }


            result = await userManager.AddClaimsAsync(user,
                                                      model.Claims.Select(c => new Claim(c.ClaimType, c.IsSelected ? "true" : "false")));

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Nije moguće dodeliti dozvolu korisniku.");
                return(View(model));
            }

            return(RedirectToAction("EditUser", new { Id = model.UserId }));
        }
        public async Task <IActionResult> ManageUserClaims(string userId)
        {
            var user = await userManager.FindByIdAsync(userId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"Usuário com  Id = {userId} não foi encontrado";
                return(View("NotFound"));
            }
            // o método GetClaimsAsync obtém todas as claims atuais do usuário
            var existingUserClaims = await userManager.GetClaimsAsync(user);

            var model = new UserClaimsViewModel
            {
                UserId = userId
            };

            // Percorre cada claim existente
            foreach (Claim claim in ClaimsStore.AllClaims)
            {
                UserClaim userClaim = new UserClaim
                {
                    ClaimType = claim.Type
                };
                // Se o usuário tem uma claim define a propriedade IsSelected
                // como true para marcar o checkbox
                if (existingUserClaims.Any(c => c.Type == claim.Type))
                {
                    userClaim.IsSelected = true;
                }
                model.Claims.Add(userClaim);
            }
            return(View(model));
        }
        public async Task <IActionResult> ManageUserClaims(UserClaimsViewModel model)
        {
            var user = await userManager.FindByIdAsync(model.UserId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"Usuário com  Id = {model.UserId} não foi encontrado";
                return(View("NotFound"));
            }
            // Obtém todas as claims existentes e as remove
            var claims = await userManager.GetClaimsAsync(user);

            var result = await userManager.RemoveClaimsAsync(user, claims);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Não foi possível remover as claims do usuário");
                return(View(model));
            }
            // Adiciona todas as claims que foram selecionadas
            result = await userManager.AddClaimsAsync(user, model.Claims
                                                      .Where(c => c.IsSelected)
                                                      .Select(c => new Claim(c.ClaimType, c.ClaimType)));

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Não foi possível adicionar as claims selecionadas");
                return(View(model));
            }
            return(RedirectToAction("EditUser", new { Id = model.UserId }));
        }
        public async Task <IActionResult> ManageUserClaims(UserClaimsViewModel model, string userId)
        {
            var user = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"使用者Id:{userId}不存在";
                return(View("NotFound"));
            }
            var claims = await _userManager.GetClaimsAsync(user);

            //與其寫一堆if else,倒不如先移除再新增即可
            var result = await _userManager.RemoveClaimsAsync(user, claims);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "無法移除已存在的使用者權力");
                return(View(model));
            }

            result = await _userManager.AddClaimsAsync(user,
                                                       model.Claims.Select(c => new Claim(c.ClaimType, c.IsSelected ? "true" : "false")));

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "無法加入已選擇的使用者權力");
                return(View(model));
            }

            return(RedirectToAction("EditUser", new { Id = userId }));
        }
        public async Task <IActionResult> ManageUserClaims(string userId)
        {
            var user = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"使用者Id:{userId}不存在";
                return(View("NotFound"));
            }

            var existingUserClaims = await _userManager.GetClaimsAsync(user);

            var model = new UserClaimsViewModel
            {
                UserId = userId
            };

            foreach (var claim in ClaimsStore.AllClaims)
            {
                var userClaim = new UserClaim
                {
                    ClaimType = claim.Type
                };

                if (existingUserClaims.Any(c => c.Type.Equals(claim.Type) && c.Value.Equals("true")))
                {
                    userClaim.IsSelected = true;
                }
                model.Claims.Add(userClaim);
            }

            return(View(model));
        }
コード例 #14
0
        //// GET: UserClaims
        //public async Task<IActionResult> Index()
        //{
        //    //var index = _context.UsersClaims.Include(p => p.UserId);
        //    //return View(await index.ToListAsync());
        //    return View(await _context.ApplicationUserClaims.ToListAsync());
        //}

        public IActionResult Index()
        {
            List <UserClaimsViewModel> listUserClaims = new List <UserClaimsViewModel>();

            var UserClaimsList = (from uc in _context.UserClaims
                                  join us in _context.Users on uc.UserId equals us.Id
                                  select new
            {
                uc.Id,
                uc.UserId,
                us.UserName,
                uc.ClaimType,
                uc.ClaimValue,
            }).ToList();

            foreach (var item in UserClaimsList)
            {
                UserClaimsViewModel listClaims = new UserClaimsViewModel
                {
                    UserClaimId = item.Id,
                    UserId      = item.UserId,
                    UserName    = item.UserName,
                    ClaimType   = item.ClaimType,
                    ClaimValue  = item.ClaimValue,
                };
                listUserClaims.Add(listClaims);
            }
            return(View(listUserClaims));
        }
コード例 #15
0
        public async Task <IActionResult> ManageUserClaims(string userId)
        {
            var user = await userManager.FindByIdAsync(userId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with id = {userId} cannot be found";
                return(View("NotFound"));
            }

            var existingUserClaims = await userManager.GetClaimsAsync(user);

            var model = new UserClaimsViewModel
            {
                UserId = userId
            };

            foreach (Claim claim in ClaimStore.AllClaims)
            {
                UserClaim userClaim = new UserClaim
                {
                    ClaimType = claim.Type
                };

                //if user have any previus claim the make isselected property true so check box show selected
                if (existingUserClaims.Any(c => c.Type == claim.Type))
                {
                    userClaim.IsSelected = true;
                }
                model.Claims.Add(userClaim);
            }

            return(View(model));
        }
コード例 #16
0
        public async Task <IActionResult> ManageUserClaims(UserClaimsViewModel model, string userid)
        {
            var user = await userManager.FindByIdAsync(userid);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with id = {user.Id} was not found";
                return(View("NotFound"));
            }

            var claims = await userManager.GetClaimsAsync(user);

            var result = await userManager.RemoveClaimsAsync(user, claims);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "problem with removing claims");
                return(View(model));
            }

            //if we go with the claimtype = claimvalue
            //result = await userManager.AddClaimsAsync(user, model.Claims.Where(x => x.IsSelected).Select(y => new Claim (y.ClaimType , y.ClaimType)));

            //claim value is string
            result = await userManager.AddClaimsAsync(user, model.Claims.Select(y => new Claim(y.ClaimType, y.IsSelected ? "true" : "false")));

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "problem with adding claims");
                return(View(model));
            }

            return(RedirectToAction("EditUser", "administration", new { Id = model.UserId }));
        }
コード例 #17
0
        public async Task <IActionResult> ManageUserClaims(string userId)
        {
            IdentityUser user = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(NotFound());
            }

            var existingUserClaims = await _userManager.GetClaimsAsync(user);

            var model = new UserClaimsViewModel()
            {
                UserId = userId
            };

            foreach (Claim claim in ClaimStore.claimsList)
            {
                UserClaim userClaim = new UserClaim
                {
                    ClaimType = claim.Type
                };
                if (existingUserClaims.Any(c => c.Type == claim.Type))
                {
                    userClaim.IsSelected = true;
                }
                model.Claims.Add(userClaim);
            }

            return(View(model));
        }
コード例 #18
0
        public async Task <IActionResult> ManageUserClaims(UserClaimsViewModel model)
        {
            var user = await userManager.FindByIdAsync(model.UserId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"无法找到ID为{model.UserId}的用户";
                return(View("NotFound"));
            }

            // //获取所有用户现有的声明并删除它们
            var claims = await userManager.GetClaimsAsync(user);

            var result = await userManager.RemoveClaimsAsync(user, claims);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "无法删除当前用户的声明");
                return(View(model));
            }

            // 添加界面上选中的所有声明信息
            result = await userManager.AddClaimsAsync(user,
                                                      model.Cliams.Select(c => new Claim(c.ClaimType, c.IsSelected?"true":"false")));

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "无法向用户添加选定的声明");
                return(View(model));
            }

            return(RedirectToAction("EditUser", new { Id = model.UserId }));
        }
コード例 #19
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,ClaimType,ClaimValue,UserId")] UserClaimsViewModel userclaims)
        {
            if (id != userclaims.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var _claim = await _context.UserClaims.SingleOrDefaultAsync(m => m.Id == id);

                    var _claimOld = new Claim(_claim.ClaimType, _claim.ClaimValue);

                    var _user = await _userManager.FindByIdAsync(userclaims.UserId);

                    var _claimNew = new Claim(userclaims.ClaimType, userclaims.ClaimValue);

                    //await _userManager.AddClaimAsync(user, _claim);

                    await _userManager.ReplaceClaimAsync(_user, _claimOld, _claimNew);
                }
                catch (DbUpdateConcurrencyException)
                {
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(userclaims));
        }
コード例 #20
0
        public async Task <IActionResult> ManageClaims(UserClaimsViewModel model)
        {
            var user = await userManager.FindByIdAsync(model.UserId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with id ={model.UserId} is NOT FOUND";
                return(View("notfound"));
            }
            var claims = await userManager.GetClaimsAsync(user);

            var result = await userManager.RemoveClaimsAsync(user, claims);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "can't remove existing user claims");
                return(View(model));
            }
            result = await userManager.AddClaimsAsync(user, model.Claims.Where(c => c.IsSelected)
                                                      .Select(c => new Claim(c.ClaimType, c.ClaimType)));

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "can't add existing user claims");
                return(View(model));
            }
            return(RedirectToAction("Edituser", new { Id = model.UserId }));
        }
コード例 #21
0
        public async Task <IActionResult> ManageUserClaims(UserClaimsViewModel model, string userId)
        {
            ApplicationUser user = await userManager.FindByIdAsync(userId);

            var claims = await userManager.GetClaimsAsync(user);

            var result = await userManager.RemoveClaimsAsync(user, claims);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Cannot remove user existing claims");
                return(View(model));
            }

            result = await userManager.AddClaimsAsync(user,
                                                      model.Claims.Select(c => new Claim(c.ClaimType, c.IsSelected ? "true":"false")));

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Cannot Add Selected Claims to User");
                return(View(model));
            }

            return(RedirectToAction("EditUser", new { Id = userId }));
        }
コード例 #22
0
        public async Task <IActionResult> ManageUserClaims(UserClaimsViewModel model)
        {
            var user = await _userManager.FindByIdAsync(model.UserId);

            if (user == null)
            {
                ViewBag.Error = $"User with Id {model.UserId} cannot be found.";
                return(View("NotFound"));
            }

            var claims = await _userManager.GetClaimsAsync(user);

            var result = await _userManager.RemoveClaimsAsync(user, claims);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Cannot remove user existing claims.");
                return(View(model));
            }

            result = await _userManager.AddClaimsAsync(user, model.Claims.Where(x => x.IsSelected).Select(x => new Claim(x.ClaimType, x.IsSelected ? "true" : "false")));

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Cannot remove user existing claims.");
                return(View(model));
            }



            return(RedirectToAction("EditUser", new { Id = model.UserId }));
        }
コード例 #23
0
        public async Task <IActionResult> ManageUserClaims(string userId)
        {
            var user = await userManager.FindByIdAsync(userId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with Id = {userId} cannot be found";
                return(View("NotFound"));
            }
            var existingUserClaims = await userManager.GetClaimsAsync(user);

            var model = new UserClaimsViewModel
            {
                UserId = userId
            };

            foreach (Claim claim in ClaimStore.AllClaims)
            {
                UserClaim userClaim = new UserClaim
                {
                    ClaimType = claim.Type
                };
                //if the user has the claim,set IsSelected property to true,so the checkbox
                //next to the claim is chocked in the UI
                if (existingUserClaims.Any(c => c.Type == claim.Type && c.Value == "true"))
                {
                    userClaim.IsSelected = true;
                }
                model.Claims.Add(userClaim);
            }
            return(View(model));
        }
コード例 #24
0
        public async Task <IActionResult> ManageUserClaims(string userId)
        {
            var user = await userManager.FindByIdAsync(userId);

            if (user == null)
            {
                ViewBag.errormessage = $"user with id: {userId} cannot be found";
                return(View("notfound"));
            }

            var userClaims = await userManager.GetClaimsAsync(user);

            var model = new UserClaimsViewModel
            {
                userId = userId
            };

            foreach (Claim claim in ClaimsStore.AllClaims)
            {
                UserClaim userClaim = new UserClaim
                {
                    ClaimType = claim.Type
                };

                userClaim.IsSelected = userClaims
                                       .Any(usrClaim => usrClaim.Type == claim.Type);

                model.Claims.Add(userClaim);
            }
            return(View(model));
        }
コード例 #25
0
        public async Task <IActionResult> ManageUserClaims(UserClaimsViewModel model, string userId)
        {
            var user = await userManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(View("_Eroor"));
            }
            var claims = await userManager.GetClaimsAsync(user);

            var result = await userManager.RemoveClaimsAsync(user, claims);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Var olan izinler kaldırılamaz");
                return(View(model));
            }
            var result2 = await userManager.AddClaimsAsync(user, model.Claims.Where(x => x.IsSelected).Select(x => new Claim(x.ClaimType, x.IsSelected ? "true":"false")));

            if (!result2.Succeeded)
            {
                ModelState.AddModelError("", "Seçili izinler tanımlı kullanıcı için eklenemez.");
                return(View(model));
            }
            return(RedirectToAction("EditUser", new { id = model.UserId }));
        }
コード例 #26
0
        public async Task <IActionResult> ManageUserClaims(UserClaimsViewModel model)
        {
            var user = await userManager.FindByIdAsync(model.userId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"user with id: {model.userId} cannot be found";
                return(View("NotFound"));
            }

            var claims = await userManager.GetClaimsAsync(user);

            var result = await userManager.RemoveClaimsAsync(user, claims);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Cannot remove user from claims");
                return(View(model));
            }

            result = await userManager.AddClaimsAsync(user, model.Claims
                                                      .Where(claim => claim.IsSelected)
                                                      .Select(c => new Claim(c.ClaimType, c.ClaimType)));


            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Cannot add user to selected claims");
                return(View(model));
            }

            return(RedirectToAction("EditUser", new { Id = model.userId }));
        }
コード例 #27
0
        public async Task <IActionResult> ManageUserClaims(string userId)
        {
            var user = await userManager.FindByIdAsync(userId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with Id = {userId} cannot be found";
                return(View("NotFound"));
            }

            var existingUserClaims = await userManager.GetClaimsAsync(user);

            var model = new UserClaimsViewModel()
            {
                UserId = userId
            };

            foreach (Claim claim in ClaimsStore.AllClaims)
            {
                UserClaim userClaim = new UserClaim()
                {
                    ClaimType = claim.Type
                };

                if (existingUserClaims.Any(c => c.Type == claim.Type && c.Value == "true"))
                {
                    userClaim.IsSelected = true;
                }

                model.Claims.Add(userClaim);
            }

            return(View(model));
        }
コード例 #28
0
        public async Task <IActionResult> ManageUserClaims(string userId)
        {
            var user = await this.userManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(this.RedirectToNotFound($"User with Id = {userId} cannot be found"));
            }
            else
            {
                var existingUserClaims = await this.userManager.GetClaimsAsync(user);

                var model = new UserClaimsViewModel
                {
                    UserId = userId
                };

                foreach (Claim claim in ClaimsStore.AllClaims)
                {
                    // If the user has the claim, set IsSelected property to true, so the CheckBox
                    // next to the claim is checked on the UI
                    model.Claims.Add(new UserClaim
                    {
                        ClaimType  = claim.Type,
                        IsSelected = existingUserClaims.Any(c => c.Type == claim.Type && c.Value == "true")
                    });
                }

                return(this.View(model));
            }
        }
コード例 #29
0
        public async Task <IActionResult> ManageUserClaims(string userId)
        {
            var user = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                ViewBag.ErrorMessage = $"无法找到ID为{userId}的用户";
                return(View("NotFound"));
            }
            var existingUserClaims = await _userManager.GetClaimsAsync(user);

            var model = new UserClaimsViewModel
            {
                UserId = userId
            };

            foreach (Claim claim in ClaimsStore.AllClaims)
            {
                UserClaim userClaim = new UserClaim
                {
                    ClaimType = claim.Type
                };
                if (existingUserClaims.Any(c => c.Type == claim.Type))
                {
                    userClaim.IsSelected = Boolean.Parse(existingUserClaims.Where(c => c.Type == claim.Type).FirstOrDefault().Value);
                }
                model.Claims.Add(userClaim);
            }
            return(View(model));
        }
コード例 #30
0
        public async Task <IActionResult> ManageUserClaims(string Id)
        {
            ViewBag.userId = Id;

            var user = await userManager.FindByIdAsync(Id);

            if (user == null)
            {
                ErrorViewModel mo = new ErrorViewModel();
                mo.ErrorTitle   = $"User id {Id} not found";
                mo.ErrorMessage = $"Introduce a new user";
                return(View("Error", mo));
            }

            var existingUserClaims = await userManager.GetClaimsAsync(user);

            var model = new List <UserClaimsViewModel>();

            foreach (Claim claim in ClaimsStore.AllClaims)
            {
                UserClaimsViewModel userClaim = new UserClaimsViewModel
                {
                    ClaimType = claim.Type
                };
                if (existingUserClaims.Any(x => x.Type == claim.Type && x.Value == "true"))
                {
                    userClaim.IsSelected = true;
                }

                model.Add(userClaim);
            }
            return(View(model));
        }