public static async Task CreateRoles(IServiceProvider serviceProvider, IConfiguration Configuration)
        {
            //adding customs roles
            var RoleManager = serviceProvider.GetRequiredService <RoleManager <StoreRole> >();
            var UserManager = serviceProvider.GetRequiredService <UserManager <GameStoreUser> >();

            string[]       roleNames = { "Admin", "Manager", "Member" };
            IdentityResult roleResult;

            foreach (var roleName in roleNames)
            {
                // creating the roles and seeding them to the database
                var roleExist = await RoleManager.RoleExistsAsync(roleName);

                if (!roleExist)
                {
                    roleResult = await RoleManager.CreateAsync(new StoreRole(roleName));
                }
            }

            // creating a super user who could maintain the web app
            var poweruser = new GameStoreUser
            {
                UserName = Configuration.GetSection("UserSettings")["UserEmail"],
                Email    = Configuration.GetSection("UserSettings")["UserEmail"]
            };

            string userPassword = Configuration.GetSection("UserSettings")["UserPassword"];
            var    user         = await UserManager.FindByEmailAsync(Configuration.GetSection("UserSettings")["UserEmail"]);

            if (user == null)
            {
                var createPowerUser = await UserManager.CreateAsync(poweruser, userPassword);

                if (createPowerUser.Succeeded)
                {
                    // here we assign the new user the "Admin" role
                    await UserManager.AddToRoleAsync(poweruser, "Admin");
                }
            }
        }
Beispiel #2
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = new GameStoreUser {
                Email = model.Email, UserName = model.UserName
            };

            var result = await userManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return(View(model));
            }

            await signInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

            userManager.AddToRole(user.Id, "Customer");
            return(ReturnToGamesList());
        }