我正在开发一个使用 ASP.NET Core Identity 的 ASP.NET Core 6 MVC 应用程序。当我尝试使用
UserManager
创建新用户时,出现此错误:
用户名“ ”无效,只能包含字母或数字
代码:
var user = new User
{
Name = "my name",
UserName = "any user name",
Email = "[email protected]",
EmailConfirmed = true
};
var result = await _userManager.CreateAsync(user, "123723-Aa");
根据上述微软官方文档, AspNet_Users 表的 Username 字段默认有效允许的字符为:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+
根据您的问题,您在用户名字段中使用空格,例如“任何用户名”。
您必须像“any_user_name”或“anyusername”一样使用它,或者您可以只使用上面列表中的字符。
不过,您想在 Username 字段中使用空格,您可以使用 AllowedUserNameCharacters 属性进行配置来修改默认字符,如下所示:
services.AddIdentity<IdentityUser<string>, IdentityRole>(options =>{
options.User.AllowedUserNameCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+/ ";
});