コード例 #1
0
        private void GenUser(UserManager <TicketHubUser> userManager, string userName, string roleName)
        {
            var userEmail = $"{userName}@tickethub.com";

            if (!userManager.Users.Any(u => u.UserName == userEmail))
            {
                var userToInsert = new TicketHubUser {
                    UserName = userEmail, PhoneNumber = "0987654321", Email = userEmail
                };
                userManager.Create(userToInsert, "Pwd12345.");
                userManager.AddToRole(userToInsert.Id, roleName);
            }
            else
            {
                var user = userManager.FindByEmail($"{userName}@tickethub.com");
                if (!userManager.IsInRole(user.Id, roleName))
                {
                    userManager.AddToRole(user.Id, roleName);
                }
            }
        }
コード例 #2
0
        public async Task <ActionResult> UserLogin(LoginViewModel viewModel, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Login"));
            }

            //註冊
            if (viewModel.IsSignUp)
            {
                var user = UserManager.FindByEmail(viewModel.Email);
                if (user != null)
                {
                    //登入
                    return(await SignIn(viewModel, returnUrl));
                }

                var newUser = new TicketHubUser
                {
                    UserName = viewModel.Email,
                    Email    = viewModel.Email
                };

                var createResult = await UserManager.CreateAsync(newUser, viewModel.Password);

                if (createResult.Succeeded)
                {
                    await UserManager.AddToRoleAsync(newUser.Id, RoleName.CUSTOMER);
                }
                else
                {
                    AddErrors(createResult);
                    return(View("Login"));
                }
            }

            //登入
            return(await SignIn(viewModel, returnUrl));
        }