在 Microsoft.AspNetCore.Identity 标识中使用非 ASCII 字符

Using non-ASCII characters in Microsoft.AspNetCore.Identity Identity

我想将用户名设置为Chinese Word,文档

services.Configure<IdentityOptions>(options =>
{
   options.User.AllowedUserNameCharacters =
   "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
});

我想将单词设置为中文单词 像这样

var user = new IdentityUser { Email = "admin@xxx.com", UserName = "管理员" };
var result= userManager.CreateAsync(user, "admin123456"); // 等待异步方法执行完毕

结果是 Id = 1,状态 = RanToCompletion,方法 =“{null}”,结果 =“失败:InvalidUserName”

这是 ASP.NET Core Identity 的默认行为。您可以执行以下操作来禁用验证:

services.Configure<IdentityOptions>(options =>
{
    options.User.AllowedUserNameCharacters = null;
});

此外,像下面这样更改您的代码:

//add await....
var result = await _userManager.CreateAsync(user, "AD@admin123456");

注:

默认密码包含一个大写字符、一个小写字符、一个数字和一个非字母数字字符。密码长度必须至少为六个字符。

如果您没有自定义密码验证,admin123456这里是无效的,您仍然需要一个大写字符和一个非字母数字字符。