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