コード例 #1
0
        private async Task SignDonorIn(WishlistUser user, WishlistUserManager manager)
        {
            var authManager = HttpContext.GetOwinContext().Authentication;

            authManager.SignIn(new AuthenticationProperties {
                IsPersistent = true
            },
                               await user.GenerateUserIdentityAsync(manager));
        }
コード例 #2
0
 protected override void Dispose(bool disposing)
 {
     if (disposing && UserManager != null)
     {
         UserManager.Dispose();
         UserManager = null;
     }
     base.Dispose(disposing);
 }
コード例 #3
0
        private async Task<WishlistUser> CreateDonor(RegisterDonorViewModel registration, WishlistUserManager manager) {
            await manager.CreateAsync(new WishlistUser {
                Name = registration.Name,
                UserName = registration.Email,
                Email = registration.Email
            }, registration.Password);

            return await manager.FindByNameAsync(registration.Email);
        }
コード例 #4
0
        private async Task SendConfirmationEmail(WishlistUser user, WishlistUserManager manager)
        {
            string code = await manager.GenerateEmailConfirmationTokenAsync(user.Id);

            var callbackUrl = Url.Action("ConfirmEmail", "Account", new {
                userId = user.Id, code = code
            }, protocol: Request.Url.Scheme);
            await manager.SendEmailAsync(user.Id, "Confirm Your Email for Santa's Wishlist",
                                         "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");
        }
コード例 #5
0
        private static void SeedUserAccounts(WishlistContext context)
        {
            var userStore   = new UserStore <WishlistUser>(context);
            var userManager = new WishlistUserManager(userStore);

            userManager.Create(new WishlistUser {
                UserName       = "******",
                Email          = "*****@*****.**",
                EmailConfirmed = true,
                Name           = "Jacob Marley",
            }, "OweBahama14");

            var jakeUser = userManager.FindByName("jmarley");

            userManager.AddToRoles(jakeUser.Id, WishlistUser.AdminRole);

            userManager.Create(new WishlistUser {
                UserName       = "******",
                Email          = "*****@*****.**",
                EmailConfirmed = true,
                Name           = "Robert"
            }, "SwazyDoze14");

            var bobUser = userManager.FindByName("rcratchet");

            userManager.AddToRole(bobUser.Id, "Family");
            userManager.AddClaim(bobUser.Id, new Claim("Family", (1).ToString()));
            userManager.AddClaim(bobUser.Id, new Claim("Child", (1).ToString()));
            userManager.AddClaim(bobUser.Id, new Claim("Wishlist", (1).ToString()));

            userManager.Create(new WishlistUser {
                UserName       = "******",
                Email          = "*****@*****.**",
                EmailConfirmed = true,
                Name           = "Ben Scrooge"
            }, "ChristmasPast");

            var benUser = userManager.FindByName("*****@*****.**");

            userManager.AddToRole(benUser.Id, "Donor");
            userManager.AddClaim(benUser.Id, new Claim("Donor", (1).ToString()));
        }
コード例 #6
0
        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);
                    }
                }
        }
コード例 #7
0
        public async Task <ActionResult> ResetPassword(int id)
        {
            var familyUser = await _db.Users.Where(
                u => u.Claims.Any(c => c.ClaimType == "Family" && c.ClaimValue == id.ToString())
                ).FirstAsync();

            using (var userStore = new UserStore <WishlistUser>(_db))
                using (var userManager = new WishlistUserManager(userStore)) {
                    var password       = GenerateRandomPassword(8);
                    var hashedPassword = userManager.PasswordHasher.HashPassword(password);
                    await userStore.SetPasswordHashAsync(familyUser, hashedPassword);

                    await userStore.UpdateAsync(familyUser);

                    TempData["familyCredentials"] = new FamilyCredentials {
                        Username = familyUser.UserName,
                        Password = password
                    };
                    return(RedirectToAction("Administer", new { id = id }));
                }
        }
コード例 #8
0
        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
            });
        }
コード例 #9
0
        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()));
        }
コード例 #10
0
 protected override void Dispose(bool disposing)
 {
     if (disposing && UserManager != null)
     {
         UserManager.Dispose();
         UserManager = null;
     }
     base.Dispose(disposing);
 }
コード例 #11
0
 public AccountController(WishlistUserManager userManager)
 {
     UserManager = userManager;
 }
コード例 #12
0
 private async Task SendConfirmationEmail(WishlistUser user, WishlistUserManager manager) {
     string code = await manager.GenerateEmailConfirmationTokenAsync(user.Id);
     var callbackUrl = Url.Action("ConfirmEmail", "Account", new {
         userId = user.Id, code = code
     }, protocol: Request.Url.Scheme);
     await manager.SendEmailAsync(user.Id, "Confirm Your Email for Santa's Wishlist",
        "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");
 }
コード例 #13
0
 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()));
 }
コード例 #14
0
 public AccountController(WishlistUserManager userManager)
 {
     UserManager = userManager;
 }
コード例 #15
0
        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
            };
        }
コード例 #16
0
        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);
                }
            }
        }
コード例 #17
0
        public async Task<ActionResult> ResetPassword(int id) {
            var familyUser = await _db.Users.Where(
                u => u.Claims.Any(c => c.ClaimType == "Family" && c.ClaimValue == id.ToString())
                ).FirstAsync();

            using (var userStore = new UserStore<WishlistUser>(_db))
            using (var userManager = new WishlistUserManager(userStore)) {
                var password = GenerateRandomPassword(8);
                var hashedPassword = userManager.PasswordHasher.HashPassword(password);
                await userStore.SetPasswordHashAsync(familyUser, hashedPassword);
                await userStore.UpdateAsync(familyUser);

                TempData["familyCredentials"] = new FamilyCredentials {
                    Username = familyUser.UserName,
                    Password = password
                };
                return RedirectToAction("Administer", new { id = id });
            }
        }
コード例 #18
0
        private async Task <WishlistUser> CreateDonor(RegisterDonorViewModel registration, WishlistUserManager manager)
        {
            await manager.CreateAsync(new WishlistUser {
                Name     = registration.Name,
                UserName = registration.Email,
                Email    = registration.Email
            }, registration.Password);

            return(await manager.FindByNameAsync(registration.Email));
        }
コード例 #19
0
 private async Task SignDonorIn(WishlistUser user, WishlistUserManager manager) {
     var authManager = HttpContext.GetOwinContext().Authentication;
     authManager.SignIn(new AuthenticationProperties { IsPersistent = true },
         await user.GenerateUserIdentityAsync(manager));
 }