请帮帮我,我正试图使用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
};