MVC 中用户名中的非字母数字字符
Non alpha numeric characters in Username in MVC
我成功地在我的用户名中获取了非字母数字字符,我现在遇到的问题是当我尝试为用户分配角色时它抛出了一个无效的用户名错误。它说“只能包含字母和数字。
这是我添加的允许用户名中的字符;
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.Erorrs[0] = "用户名J.Blow无效,只能包含字母或数字。"
为什么我会收到这个。我需要在其他地方更改用户名的验证吗?
提前致谢。
克林特
根据您的代码,您正在创建 UserManager
的新实例并在 AddUserToRole
方法中使用它。因此忽略您在控制器中设置的 UserManager
。
如果重构代码以便可以在 AddUserToRole
方法中使用控制器中实例化的代码,那应该可以。
我成功地在我的用户名中获取了非字母数字字符,我现在遇到的问题是当我尝试为用户分配角色时它抛出了一个无效的用户名错误。它说“只能包含字母和数字。
这是我添加的允许用户名中的字符;
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.Erorrs[0] = "用户名J.Blow无效,只能包含字母或数字。"
为什么我会收到这个。我需要在其他地方更改用户名的验证吗?
提前致谢。
克林特
根据您的代码,您正在创建 UserManager
的新实例并在 AddUserToRole
方法中使用它。因此忽略您在控制器中设置的 UserManager
。
如果重构代码以便可以在 AddUserToRole
方法中使用控制器中实例化的代码,那应该可以。