MVC中用户名中的非alpha数字字符

本文关键字:alpha 数字字符 用户 MVC | 更新日期: 2023-09-27 18:15:49

我成功地在我的用户名中获得非alpha数字字符,我现在遇到的问题是,当我尝试将角色分配给用户时,它正在抛出无效的用户名错误。它说"只能包含字母和数字。

这是我添加的内容,允许用户名中的字符;

public AccountController(UserManager<ApplicationUser> userManager)
    {
        UserManager = userManager;
        var userValidator = UserManager.UserValidator as   UserValidator<ApplicationUser>;
        userValidator.AllowOnlyAlphanumericUserNames = false;
    }

这就是我得到错误的地方;

public bool AddUserToRole(string userId, string roleName)
    {
        var um = new UserManager<ApplicationUser>(
            new UserStore<ApplicationUser>(new ApplicationDbContext()));
        var idResult = um.AddToRole(userId, roleName);
        return idResult.Succeeded;

idResult。错误[0]= "用户名J.Blow无效,只能包含字母或数字。"

为什么我得到这个。我是否需要在其他地方更改用户名的有效性?

谢谢,提前。

克林特

MVC中用户名中的非alpha数字字符

根据您的代码,您正在创建UserManager的新实例并在AddUserToRole方法中使用它。因此忽略您在控制器中设置的UserManager

如果你重构你的代码,以便你可以使用一个实例化在你的控制器在你的AddUserToRole方法,这应该工作。