ASP.NET Core 身份无效用户名

问题描述 投票:0回答:1

我正在开发一个使用 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");
c# asp.net-core entity-framework-core asp.net-core-mvc
1个回答
0
投票

参考资料:https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.identity.useroptions.allowedusernamecharacters?view=aspnetcore-6.0

根据上述微软官方文档, AspNet_Users 表的 Username 字段默认有效允许的字符为:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+

根据您的问题,您在用户名字段中使用空格,例如“任何用户名”

您必须像“any_user_name”“anyusername”一样使用它,或者您可以只使用上面列表中的字符。

不过,您想在 Username 字段中使用空格,您可以使用 AllowedUserNameCharacters 属性进行配置来修改默认字符,如下所示:

services.AddIdentity<IdentityUser<string>, IdentityRole>(options =>{
    options.User.AllowedUserNameCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+/ ";
});
© www.soinside.com 2019 - 2024. All rights reserved.