public async Task <IActionResult> Create(CreateUser model) { if (string.IsNullOrWhiteSpace(model.UserName)) { return(Warning(Resources.UserNameNotNull)); } if (string.IsNullOrWhiteSpace(model.Password)) { return(Warning(Resources.PasswordNotNull)); } if (model.Password != model.ConfirmPassword) { return(Warning(Resources.PasswordAndConfirmPasswordNotEqual)); } model.UserName = model.UserName.Trim(); model.Password = model.Password.Trim(); if (model.Password.Length < 6) { return(Warning(Resources.PasswordInvalid)); } if (model.IgnoreDisallowNames && await _nameManager.IsDisallowedAsync(model.UserName)) { return(Warning(Resources.UserNameDisallowed)); } if (await _userManager.CheckUserNameAsync(model.UserName)) { return(Warning(Resources.UserNameDuplicate)); } var user = new User(); user.UserName = model.UserName; user.NickName = model.UserName; user.Email = model.Email; user.EmailConfirmed = model.IgnoreEmailConfirm; var result = await _userManager.CreateAsync(user, SecurityHelper.CreatePassword(model.UserName, model.Password), IdentitySettings.Register); if (result.Succeeded) { if (model.IgnoreEmailConfirm) { return(Success("你已经成功添加了用户!")); } return(Success("你已经成功添加了用户,可以让用户登陆邮件激活账户!")); } _logger.LogWarning(SecuritySettings.EventId, "注册账户[{0}]失败.", user.UserName); var error = result.Errors.FirstOrDefault(); if (error != null) { return(Error(Resources.ResourceManager.GetString(error.Code))); } return(Error("添加用户失败!")); }
public async Task <IActionResult> Register(RegisterUser model) { if (string.IsNullOrWhiteSpace(model.UserName)) { return(Warning(Resources.UserNameNotNull)); } if (string.IsNullOrWhiteSpace(model.Password)) { return(Warning(Resources.PasswordNotNull)); } if (model.Password != model.ConfirmPassword) { return(Warning(Resources.PasswordAndConfirmPasswordNotEqual)); } model.UserName = model.UserName.Trim(); model.Password = model.Password.Trim(); if (model.Password.Length < 6) { return(Warning(Resources.PasswordInvalid)); } if (await _nameManager.IsDisallowedAsync(model.UserName)) { return(Warning(Resources.UserNameDisallowed)); } if (await _userManager.CheckUserNameAsync(model.UserName)) { return(Warning(Resources.UserNameDuplicate)); } var user = new User(); user.UserName = model.UserName; user.NickName = model.UserName; user.Email = model.Email; var result = await _userManager.CreateAsync(user, SecurityHelper.CreatePassword(model.UserName, model.Password), IdentitySettings.Register); if (result.Succeeded) { try { var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = ActionUrl("ConfirmEmail", new { userId = user.UserId, code }); await _emailSender.SendEmailAsync(user, Resources.Email_ActiveAccount, Resources.Email_ActiveAccount_Body.ReplaceBy( kw => { kw.Add("name", user.NickName); kw.Add("link", callbackUrl); })); _logger.LogInformation(SecuritySettings.EventId, "注册了账户[{0}].", user.UserName); return(Success("一封激活邮件已经发送到你的邮箱!该激活链接24小时内有效!")); } catch (Exception exception) { _logger.LogError(EmailSettings.EventId, exception, "邮件发送失败:" + exception.Message); return(Warning("账户已经成功注册,但是激活邮件发送失败,请联系网站管理员!")); } } _logger.LogWarning(SecuritySettings.EventId, "注册账户[{0}]失败.", user.UserName); var error = result.Errors.FirstOrDefault(); if (error != null) { return(Error(Resources.ResourceManager.GetString(error.Code))); } return(Error("注册失败!")); }