我使用asp.net Identity进行授权和身份验证。我尝试用希伯来字母创建一个用户名,但它没有用。
使用旧的成员资格,我可以使用希伯来字符作为用户名。 Identity可以使用非拉丁字符吗?
答案 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,
};