Esempio n. 1
0
        public async Task <IActionResult> ManagerClaims(string id)
        {
            var user = await _UserManager.FindByIdAsync(id);

            if (user == null)
            {
                return(RedirectToAction("index"));
            }
            var vm = new CreateClaimsViewModel
            {
                UserId = id,
            };

            var claims = await _UserManager.GetClaimsAsync(user);

            var claimsList = claims.Select(x => x.Value).ToList();

            var ss = new List <string>();


            //foreach (var item1 in ClaimsType.ClaimType)
            //{
            //    if (claimsList.IndexOf(item1)==-1)
            //    {
            //        ss.Add(item1);
            //    }
            //}

            foreach (var item1 in ClaimsType.ClaimType)
            {
                var val_st = false;

                foreach (var item in claimsList)
                {
                    if (item == item1)
                    {
                        val_st = true;
                    }
                }
                if (!val_st)
                {
                    ss.Add(item1);
                }
            }


            //13
            //1234

            vm.AllClaims = ClaimsType.ClaimType.Except(claimsList).ToList();



            return(View(vm));
        }
Esempio n. 2
0
        public async Task <IActionResult> ManagerClaims(CreateClaimsViewModel createClaimsViewModel)
        {
            if (ModelState.IsValid)
            {
                var user = await _UserManager.FindByIdAsync(createClaimsViewModel.UserId);

                if (createClaimsViewModel.ClaimId == "-1")
                {
                    var claims = await _UserManager.GetClaimsAsync(user);

                    var claimsList = claims.Select(x => x.Value).ToList();



                    //13
                    //1234

                    createClaimsViewModel.AllClaims = ClaimsType.ClaimType.Except(claimsList).ToList();

                    ModelState.AddModelError(string.Empty, "请选择正确的Claim");
                    return(View(createClaimsViewModel));
                }


                if (user != null)
                {
                    var claim = new IdentityUserClaim <string>
                    {
                        ClaimType  = createClaimsViewModel.ClaimId,
                        ClaimValue = createClaimsViewModel.ClaimId
                    };

                    user.Claims.Add(claim);
                    var result = await _UserManager.UpdateAsync(user);

                    if (result.Succeeded)
                    {
                        return(RedirectToAction("EditUser", new { id = createClaimsViewModel.UserId }));
                    }

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

            return(View(createClaimsViewModel));
        }