我有一个应用程序,该应用程序通过涉及xml文件的自动化过程来创建用户,以加载所有身份信息。
默认情况下,身份标识不允许某些用户名,因为它们不包含默认的“允许的用户名”字符。
因此,在启动时,我对其进行了编辑,以允许再添加几个字符。
services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
options.User.AllowedUserNameCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+'#!/^%{}*";
})
.AddEntityFrameworkStores<IdentityContext>()
.AddDefaultTokenProviders();
现在,它允许所有字符,不仅是我在该字符串中指定的字符。例如,它让我创建一个用户名为“!#$%^ *()〜`-= _ + [] {} \ | ;:'”,./<>?©®“的用户。很明显我做错了吗?
这就是我创建用户的方式。
var newAppUser = new ApplicationUser
{
FirstName = "First",
LastName = "Last",
UserName = "!#$%^*()~`-=_+[]{}\|;:', ./<>?©®",
NormalizedUserName = "!#$%^*()~`-=_+[]{}\|;:', ./<>?©®",
Email = "nothing@nothing.com",
NormalizedEmail = "nothing@nothing.com".ToUpper(),
LockoutEnabled = true,
LockoutEnd = DateTime.Now,
IsDisabled = false
};
string password = RandomPasswordService.Generate();
var result = await _userManager.CreateAsync(newAppUser, password);