在 asp.net 中创建用户 c# 身份不适用于希伯来语用户名
Create user in asp.net c# identity doesn't work with Hebrew user name
我正在使用 asp.net 身份进行授权和验证。我尝试用希伯来字母创建用户名,但没有成功。
使用旧会员资格,我可以使用希伯来语字符作为用户名。 Identity 是否可以使用非拉丁字符?
我想你可以尝试做这样的事情:
创建一个新的自定义用户验证器来执行您自己的自定义验证(您也可以使用正则表达式进行验证):
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
}
}
然后当您创建应用程序用户管理器时,您可以将默认用户验证器设置为这个新验证器的一个实例 class:
manager.UserValidator = new CustomUserValidator<ApplicationUser>(manager)
{
AllowOnlyAlphanumericUserNames = false,
RequireUniqueEmail = true
};
[注意:]
默认验证器类似于:
manager.UserValidator = new UserValidator<ApplicationUser>(manager)
{
AllowOnlyAlphanumericUserNames = false,
};
我正在使用 asp.net 身份进行授权和验证。我尝试用希伯来字母创建用户名,但没有成功。
使用旧会员资格,我可以使用希伯来语字符作为用户名。 Identity 是否可以使用非拉丁字符?
我想你可以尝试做这样的事情:
创建一个新的自定义用户验证器来执行您自己的自定义验证(您也可以使用正则表达式进行验证):
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
}
}
然后当您创建应用程序用户管理器时,您可以将默认用户验证器设置为这个新验证器的一个实例 class:
manager.UserValidator = new CustomUserValidator<ApplicationUser>(manager)
{
AllowOnlyAlphanumericUserNames = false,
RequireUniqueEmail = true
};
[注意:] 默认验证器类似于:
manager.UserValidator = new UserValidator<ApplicationUser>(manager)
{
AllowOnlyAlphanumericUserNames = false,
};