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

Cli*_*ark 0 c# asp.net asp.net-mvc asp.net-identity

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

这是我添加的用于允许用户名中的字符;

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

这是我收到错误的地方;

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;
Run Code Online (Sandbox Code Playgroud)

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

为什么我得到这个.我是否需要在其他地方更改用户名的变体?

提前致谢.

克林特

Stu*_*art 6

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

如果您重构代码以便可以在AddUserToRole方法中使用控制器中实例化的代码,那应该可行.