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)); }
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)); }