public async Task <IActionResult> ManageUserClaims(UserClaimsModel 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 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 claim to user"); return(View(model)); } return(RedirectToAction("EditUser", new { Id = model.UserId })); }
public async Task <IActionResult> ManageUserClaims(string id) { var user = await userManager.FindByIdAsync(id); if (user == null) { ViewBag.ErrorMessage = $"User with ID : {id} cannot be found"; return(View("NotFound")); } var claims = await userManager.GetClaimsAsync(user); var model = new UserClaimsModel { UserId = id }; foreach (Claim claim in ClaimsClass.AllClaims) { UserClaim userClaim = new UserClaim { ClaimType = claim.Type }; if (claims.Any(c => c.Type == claim.Type && c.Value == "true")) { userClaim.IsSelected = true; } model.Claims.Add(userClaim); } ViewBag.UserId = model.UserId; return(View(model)); }
public async Task <IActionResult> ManageUserClaims(UserClaimsModel 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 })); }
private async Task <ContainerModel> getUsersAndClaims() { List <string> usernames = new List <string>(); List <List <string> > claims = new List <List <string> >(); var listOfUsers = context.Users.ToList(); foreach (var user in listOfUsers) { List <string> userClaims = new List <string>(); foreach (var claim in await userManager.GetClaimsAsync(user)) { userClaims.Add(claim.ToString()); } usernames.Add(user.UserName); claims.Add(userClaims); } UserClaimsModel ucm = new UserClaimsModel { username = usernames, claimsList = claims }; model.Ucm = ucm; return(model); }
public ActionResult UserClaims() { var principal = IdentityHelper.GetCurrentClaimsPrincipal(); // temporary code to show user claims, while there is a sitecore user object as UserClaimsModel ucm = new UserClaimsModel(); if (principal != null) { ucm.Claims = ((ClaimsPrincipal)principal).Claims; } ViewBag.Title = "ADFS Claims page"; return(View(ucm)); }
public ActionResult Index() { // Get ID ticket from .ASP.Net cookie. This ticket doesnt contain an identity, // but a reference to the identity in the Session Store var principal = IdentityHelper.GetCurrentClaimsPrincipal(); var ctx = Tracker.Current.Context; // Login the sitecore user with the claims identity that was provided by identity ticket LoginHelper loginHelper = new LoginHelper(); loginHelper.Login(principal); ctx = Tracker.Current.Context; // temporary code to show user claims, while there is a sitecore user object as UserClaimsModel ucm = new UserClaimsModel(); ucm.Claims = ((ClaimsPrincipal)principal).Claims; return(View(ucm)); }
public async Task <IActionResult> ManageUserClaims(string userId) { //Specify user by Id in the AspNetUsers table 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 UserClaimsModel { UserId = userId }; // Loop through each claim we have in our application foreach (Claim claim in ClaimsStore.AllClaims) { UsersClaims userClaim = new UsersClaims { ClaimType = claim.Type }; // If the user has the claim, set IsSelected property to true, so the checkbox // next to the claim is checked on the UI if (existingUserClaims.Any(c => c.Type == claim.Type)) { userClaim.IsSelected = true; } model.Claims.Add(userClaim); } return(View(model)); }