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



我想将用户名设置为中文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,Status=RanToCompletion,Method=";{null}";,结果=";失败:InvalidUserName">

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

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

此外,更改您的代码如下:

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

注意:

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

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

最新更新