public async Task CreateAsync(AdminCreateUserDto model) { model.CheckArgumentIsNull(nameof(model)); var user = await _userManager.FindByNameAsync(model.UserName); if (user != null) { throw new UserNameExistException(); } user = await _factory.MakeAsync(model); var result = await _userManager.CreateAsync(user, model.Password); if (result == IdentityResult.Failed()) { var msg = $"User Registration failed : {result.DumpErrors()}"; throw new UserRegistrationException(message: msg); } await _userManager.AddClaimAsync(user, new Claim( "WebsiteId", _websiteInfo.Id.ToString() )); }
public Task AddClaimAsync(User user, Claim claim) { return(um.AddClaimAsync(user, claim)); }
public async Task <IActionResult> Index(LoginViewModel model, string returnUrl = null) { ViewData[_RET_URL] = returnUrl; if (!ModelState.IsValid) { return(View(model)); } var user = await _userManager.FindByNameAsync(model.Username); if (user == null) { ModelState.AddModelError("", AppErrorText.LoginInvallidUserPass); return(View(model)); } if (user.Status != UserStatus.Enabled) { ModelState.AddModelError("", AppErrorText.LoginUserDisabled); return(View(model)); } if (_appSettings.Value.EnableEmailConfirmation && !await _userManager.IsEmailConfirmedAsync(user)) { ModelState.AddModelError("", AppErrorText.LoginEmailNotVerified); return(View(model)); } var result = await _signInManager.PasswordSignInAsync(model.Username, model.Password, model.RememberMe, lockoutOnFailure : true); await _userManager.AddClaimAsync(user, new Claim( "WebsiteId", _websiteInfo.Id.ToString() )); if (result.Succeeded) { _logger.LogInformation($"{model.Username} logged in on ${_dateService.UtcNow()}"); if (Url.IsLocalUrl(returnUrl)) { return(Redirect(returnUrl)); } return(RedirectToAction( "Index", "Home", new { area = AreaNames.AdminArea } )); } if (result.RequiresTwoFactor) { } if (result.IsLockedOut) { _logger.LogWarning($"{model.Username} is locked-out."); ModelState.AddModelError("", AppErrorText.LoginLockedOut); return(View(model)); } if (result.IsNotAllowed) { ModelState.AddModelError("", AppErrorText.LoginIsNotAllowed); return(View(model)); } ModelState.AddModelError(string.Empty, AppErrorText.LoginNotValid); return(View(model)); }