private async Task CreateTestUserAsync()
        {
            var testUser = await _identityUserRepository.FindByNormalizedUserNameAsync("TEST");

            if (testUser == null)
            {
                testUser = new IdentityUser(_guidGenerator.Create(), "test", "*****@*****.**");
                await _identityUserManager.CreateAsync(testUser);
            }

            await _identityUserManager.RemovePasswordAsync(testUser);

            await _identityUserManager.AddPasswordAsync(testUser, "1q2w3E*");
        }
예제 #2
0
        public async Task HandleEventAsync(CreateEventData eventData)
        {
            using (CurrentTenant.Change(eventData.Id, eventData.Name))
            {
                const string tenantAdminRoleName = "admin";
                var          tenantAdminRoleId   = Guid.Empty;;

                if (!await IdentityRoleManager.RoleExistsAsync(tenantAdminRoleName))
                {
                    tenantAdminRoleId = GuidGenerator.Create();
                    var tenantAdminRole = new IdentityRole(tenantAdminRoleId, tenantAdminRoleName, eventData.Id)
                    {
                        IsStatic = true,
                        IsPublic = true
                    };
                    (await IdentityRoleManager.CreateAsync(tenantAdminRole)).CheckErrors();
                }
                else
                {
                    var tenantAdminRole = await IdentityRoleManager.FindByNameAsync(tenantAdminRoleName);

                    tenantAdminRoleId = tenantAdminRole.Id;
                }

                var tenantAdminUser = await IdentityUserManager.FindByNameAsync(eventData.AdminEmailAddress);

                if (tenantAdminUser == null)
                {
                    tenantAdminUser = new IdentityUser(eventData.AdminUserId, eventData.AdminEmailAddress,
                                                       eventData.AdminEmailAddress, eventData.Id);

                    tenantAdminUser.AddRole(tenantAdminRoleId);

                    // 创建租户管理用户
                    (await IdentityUserManager.CreateAsync(tenantAdminUser)).CheckErrors();
                    (await IdentityUserManager.AddPasswordAsync(tenantAdminUser, eventData.AdminPassword)).CheckErrors();
                }
                //var identitySeedResult = await IdentityDataSeeder
                //   .SeedAsync(eventData.AdminEmailAddress, eventData.AdminPassword, eventData.Id);
                //if (!identitySeedResult.CreatedAdminUser)
                //{
                //    Logger.LogWarning("Tenant {0} admin user {1} not created!", eventData.Name, eventData.AdminEmailAddress);
                //}
                //if (!identitySeedResult.CreatedAdminRole)
                //{
                //    Logger.LogWarning("Tenant {0} admin role not created!", eventData.Name);
                //}
            }
        }
        public async Task<IHttpActionResult> SetPassword(SetPasswordBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            IdentityResult result = await _userManager.AddPasswordAsync(User.Identity.GetUserId().To<int>(), model.NewPassword);

            if (!result.Succeeded)
            {
                return GetErrorResult(result);
            }

            return Ok();
        }
예제 #4
0
        public async Task <ActionResult> SetPassword(SetPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await UserManager.AddPasswordAsync(UserId, model.NewPassword);

                if (result.Succeeded)
                {
                    var user = await UserManager.FindByIdAsync(UserId);

                    if (user != null)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                    }
                    return(RedirectToAction("Index", new { Message = ManageMessageId.SetPasswordSuccess }));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
예제 #5
0
 public async Task AddPassword(IdentityUser user, string password)
 {
     await userManager.AddPasswordAsync(user, password);
 }