public async Task ValidateAsync(ResourceOwnerPasswordValidationContext context)
        {
            var query = new GetLoginUserModel
            {
                UserName = context.UserName,
                Password = context.Password
            };
            var result = await _queryDispatcher.DispatchAsync <GetLoginUserModel, LoginUserModel>(query);

            if (result != null)
            {
                context.Result = new GrantValidationResult(result.Id.ToString(), OidcConstants.AuthenticationMethods.Password);
            }
        }
예제 #2
0
        public static async Task <IApplicationBuilder> EnsureIdentityCreatedAsync(this IApplicationBuilder app)
        {
            var commandSender   = app.ApplicationServices.GetRequiredService <ICommandSender>();
            var queryDispatcher = app.ApplicationServices.GetRequiredService <IQueryDispatcher>();

            var query = new GetLoginUserModel
            {
                UserName = "******",
                Password = "******"
            };
            var user = await queryDispatcher.DispatchAsync <GetLoginUserModel, LoginUserModel>(query);

            if (user == null)
            {
                await commandSender.SendAsync <CreateUser>(new CreateUser()
                {
                    UserName = "******",
                    Email    = "*****@*****.**",
                    Password = "******"
                });
            }
            //var userManager = app.ApplicationServices.GetRequiredService<UserManager<User>>();
            //var roleManager = app.ApplicationServices.GetRequiredService<RoleManager<Role>>();

            //if (!await roleManager.RoleExistsAsync(Administrator.Name))
            //{
            //    await roleManager.CreateAsync(new Role
            //    {
            //        Id = Administrator.Id,
            //        Name = Administrator.Name
            //    });
            //}

            //var adminEmail = "*****@*****.**";

            //if (await userManager.FindByEmailAsync(adminEmail) == null)
            //{
            //    var user = new User { UserName = adminEmail, Email = adminEmail };
            //    await userManager.CreateAsync(user, "admin");
            //}

            //var adminUser = await userManager.FindByEmailAsync(adminEmail);

            //if (!await userManager.IsInRoleAsync(adminUser, Administrator.Name))
            //{
            //    await userManager.AddToRoleAsync(adminUser, Administrator.Name);
            //}

            return(app);
        }