private async Task AuthorizeChildAndWishlistForFamilyUser(Child child, Wishlist wishlist) { var familyUser = await _db.Users.Where( u => u.Claims.Any(c => c.ClaimType == "Family" && c.ClaimValue == child.FamilyId.ToString()) ).FirstAsync(); using (var userStore = new UserStore <WishlistUser>(_db)) using (var userManager = new WishlistUserManager(userStore)) { await userManager.AddClaimAsync(familyUser.Id, new Claim("Child", child.Id.ToString())); await userManager.AddClaimAsync(familyUser.Id, new Claim("Wishlist", wishlist.Id.ToString())); if (User.Identity.GetUserId() == familyUser.Id) { var claimsIdenity = (ClaimsIdentity)User.Identity; claimsIdenity.AddClaim(new Claim("Child", child.Id.ToString())); claimsIdenity.AddClaim(new Claim("Wishlist", wishlist.Id.ToString())); HttpContext.GetOwinContext().Authentication.SignIn(claimsIdenity); } } }
private async Task <FamilyCredentials> CreateFamilyAccount(Family family) { var username = await GenerateFamilyUsername(family.ParentLastName); var password = GenerateRandomPassword(8); var userStore = new UserStore <WishlistUser>(_db); var userManager = new WishlistUserManager(userStore); await userManager.CreateAsync(new WishlistUser { UserName = username, Email = family.Email, PhoneNumber = family.Phone }, password); var createdUser = await userManager.FindByNameAsync(username); await userManager.AddToRoleAsync(createdUser.Id, "Family"); await userManager.AddClaimAsync(createdUser.Id, new Claim("Family", family.Id.ToString())); return(new FamilyCredentials { Username = username, Password = password }); }
private async Task AuthorizeDonorForUser(WishlistUser user, int donorId, WishlistUserManager manager) { await manager.AddToRoleAsync(user.Id, "Donor"); await manager.AddClaimAsync(user.Id, new Claim("Donor", donorId.ToString())); }
private async Task AuthorizeDonorForUser(WishlistUser user, int donorId, WishlistUserManager manager) { await manager.AddToRoleAsync(user.Id, "Donor"); await manager.AddClaimAsync(user.Id, new Claim("Donor", donorId.ToString())); }
private async Task<FamilyCredentials> CreateFamilyAccount(Family family) { var username = await GenerateFamilyUsername(family.ParentLastName); var password = GenerateRandomPassword(8); var userStore = new UserStore<WishlistUser>(_db); var userManager = new WishlistUserManager(userStore); await userManager.CreateAsync(new WishlistUser { UserName = username, Email = family.Email, PhoneNumber = family.Phone }, password); var createdUser = await userManager.FindByNameAsync(username); await userManager.AddToRoleAsync(createdUser.Id, "Family"); await userManager.AddClaimAsync(createdUser.Id, new Claim("Family", family.Id.ToString())); return new FamilyCredentials { Username = username, Password = password }; }
private async Task AuthorizeChildAndWishlistForFamilyUser(Child child, Wishlist wishlist) { var familyUser = await _db.Users.Where( u => u.Claims.Any(c => c.ClaimType == "Family" && c.ClaimValue == child.FamilyId.ToString()) ).FirstAsync(); using (var userStore = new UserStore<WishlistUser>(_db)) using (var userManager = new WishlistUserManager(userStore)) { await userManager.AddClaimAsync(familyUser.Id, new Claim("Child", child.Id.ToString())); await userManager.AddClaimAsync(familyUser.Id, new Claim("Wishlist", wishlist.Id.ToString())); if (User.Identity.GetUserId() == familyUser.Id) { var claimsIdenity = (ClaimsIdentity) User.Identity; claimsIdenity.AddClaim(new Claim("Child", child.Id.ToString())); claimsIdenity.AddClaim(new Claim("Wishlist", wishlist.Id.ToString())); HttpContext.GetOwinContext().Authentication.SignIn(claimsIdenity); } } }