Microsoft.AspNetCore.Identity AllowedUserNameCharacters不能按预期工作

时间:2018-10-08 18:24:30

标签: c# asp.net-identity asp.net-core-2.0

我有一个应用程序,该应用程序通过涉及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);

0 个答案:

没有答案