Asp.Net Core Identity 中的德语字符错误

Error with German character in Asp.Net Core Identity

当我尝试使用 UserManager 创建用户时,用户名中有 ä、ö、ü 等字符,我得到了 succeeded=false。我不明白为什么这是个问题。数据库是 nvarchar (255),应该不会有德语字符问题。我可以使用 DbContext 在后记中更改它。我怎样才能改变这种行为?

Usermanager 通过检查是否有任何字符未包含在允许的字符列表中来验证用户名。您可以更改该列表:

services.Configure<IdentityOptions>(options =>
{
     // The list of allowed characters in the username used to validate user names 
     // you can add German characters here
     options.User.AllowedUserNameCharacters 
        = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
});

services.AddIdentity<ApplicationUser, IdentityRole>()
       .AddEntityFrameworkStores<ApplicationDbContext>()
       .AddDefaultTokenProviders();