在 C# 标识 asp.net 创建用户不适用于希伯来语用户名



我正在使用 asp.net 身份进行授权和身份验证。我尝试使用希伯来字母创建用户名,但没有奏效。

使用

旧的会员资格,我能够使用希伯来语字符作为用户名。标识是否可以使用非拉丁字符?

我认为您可以尝试这样做:

创建一个新的自定义用户验证器来执行您自己的自定义验证(您也可以使用正则表达式进行验证(:

public class CustomUserValidator<TUser> : IIdentityValidator<TUser>
    where TUser : class, Microsoft.AspNet.Identity.IUser
{
    public CustomUserValidator(UserManager<TUser> manager)
    {
        _manager = manager;
    }
    public async Task<IdentityResult> ValidateAsync(TUser item)
    {
        // Your custom validation here
    }
}

然后,在创建应用程序用户管理器时,可以将默认用户验证器设置为此新验证器类的实例:

manager.UserValidator = new CustomUserValidator<ApplicationUser>(manager)
{
    AllowOnlyAlphanumericUserNames = false,
    RequireUniqueEmail = true
};

[注:]默认验证器如下:

manager.UserValidator = new UserValidator<ApplicationUser>(manager)
    {
        AllowOnlyAlphanumericUserNames = false,
    };

in Program.cs(或 Startup.cs(添加选项。用户.允许用户名字符:

builder.Services.AddIdentity<ApplicationUser, ApplicationRole>(
        options =>
        {
            options.SignIn.RequireConfirmedAccount = true;
            options.Password.RequireNonAlphanumeric = false;
            options.Password.RequireUppercase = false;
            options.User.AllowedUserNameCharacters = "אבגדהוזחטיכלמנסעפצקרשתךםןףץabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
        }

Yor 还可以使用:

options.User.AllowedUserNameCharacters = String.Empty;

允许所有字符

相关内容

  • 没有找到相关文章

最新更新