2
我正在使用asp.net標識進行授權和身份驗證。我試圖用希伯來字母創建一個用戶名,但它不起作用。在asp.net中創建用戶c#標識與希伯來語用戶名不起作用
與舊的會員我能夠使用希伯來字符的用戶名。身份可以使用非拉丁字符嗎?
我正在使用asp.net標識進行授權和身份驗證。我試圖用希伯來字母創建一個用戶名,但它不起作用。在asp.net中創建用戶c#標識與希伯來語用戶名不起作用
與舊的會員我能夠使用希伯來字符的用戶名。身份可以使用非拉丁字符嗎?
我想你可以嘗試做這樣的事情:
創建一個新的自定義用戶驗證做自己的自定義驗證(您可以使用正則表達式,以及用於驗證):
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,
};
是否有可能設置AllowOnlyAlphanumericUserNames爲false,而無需創建一個自定義用戶驗證? –
絕對是。你也可以用默認的用戶驗證器來做到這一點。修改了答案。 – Jinish
謝謝!你讓我走向正確的方向。我使用我自己的UserManager並將代碼放入構造函數中,如下所示:this.UserValidator = new UserValidator(this)AllowOnlyAlphanumericUserNames = false, } ;.這也在這裏描述:http://stackoverflow.com/questions/19459591/allowonlyalphanumericusernames-how-to-set-it-rc-to-rtm-breaking-change-asp。再次非常感謝你! –