2017-03-19 15 views

回答

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

然後當你創建你的應用程序的用戶管理器,你可以在默認用戶驗證設置爲這個新的驗證器類的一個實例:

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

[注:] 默認驗證是這樣的:

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

是否有可能設置AllowOnlyAlphanumericUserNames爲false,而無需創建一個自定義用戶驗證? –

+1

絕對是。你也可以用默認的用戶驗證器來做到這一點。修改了答案。 – Jinish

+0

謝謝!你讓我走向正確的方向。我使用我自己的UserManager並將代碼放入構造函數中,如下所示:this.UserValidator = new UserValidator (this)AllowOnlyAlphanumericUserNames = false, } ;.這也在這裏描述:http://stackoverflow.com/questions/19459591/allowonlyalphanumericusernames-how-to-set-it-rc-to-rtm-breaking-change-asp。再次非常感謝你! –

相關問題