在asp.net中创建用户c#身份不能使用希伯来语用户名

时间:2017-03-19 10:39:52

标签: asp.net-identity hebrew

我使用asp.net Identity进行授权和身份验证。我尝试用希伯来字母创建一个用户名,但它没有用。

使用旧的成员资格,我可以使用希伯来字符作为用户名。 Identity可以使用非拉丁字符吗?

1 个答案:

答案 0 :(得分:2)

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

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

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
    }
}

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

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

<强> [注:] 默认验证器如下:

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