当提交的用户名包含短划线时,无法创建新用户



请帮帮我,我正试图使用class IdentityUser()创建一个新的用户,但当我在username中添加dash(-)符号时,我遇到了一个错误。我该怎么解决这个问题?

var userStore = new UserStore<IdentityUser>();
var manager = new UserManager<IdentityUser>(userStore);
var user = new IdentityUser() { UserName = aspNetUsers.Email };
IdentityResult result = manager.Create(user, aspNetUsers.PasswordHash);

用户管理器类有一个名为UserValidator的类,在该类中有一个属性需要更改:

public class ApplicationUserManager : UserManager<ApplicationUser>
{
    public ApplicationUserManager(IUserStore<ApplicationUser> store) : base(store)
    {
        this.UserValidator = new UserValidator<ApplicationUser>(this)
        {
            AllowOnlyAlphanumericUserNames = false
        };
    }
}

我也遇到过同样的问题。对于@tparnell提出的解决方案(使用量很大),没有任何变化,验证仍然失败。

我在AccountController中用一个新的声明解决了问题:

userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
userManager.UserValidator = new UserValidator<ApplicationUser>(userManager)
        {
            AllowOnlyAlphanumericUserNames = false,
            RequireUniqueEmail = true
        };

相关内容

  • 没有找到相关文章

最新更新