2016-10-04 135 views
2

我使用ASP.NET核心身份如下創建用戶:使電子郵件作爲用戶名在ASP.NET核心身份

User user = new User { 
    Email = "[email protected]", 
    Name = "John" 
};    

await manager.CreateAsync(user, "JohnPass"); 

我得到一個錯誤說的用戶名是無效的,因爲它是空的。

如何配置身份使用電子郵件作爲用戶名?

或者我需要手動設置用戶名等於電子郵件?下面的代碼

+0

我認爲最好的方法很簡單,就是用戶名設置爲電子郵件,使用自定義UserValidator如下所示:http://stackoverflow.com/a/19460800/1166719 –

回答

1

使用基於強制項目

User user = new User { 
    Id = id,// some auto generated id 
    Email = "[email protected]", 
    UserName = "[email protected]",// because you want to keep email id as UserName 
    DisplayName= "John" 
};    

await manager.CreateAsync(user, "JohnPass"); 
+0

使用此方法進行驗證可能會讓用戶感到困惑。如果用戶註冊了一個已經存在的電子郵件,那麼UserManager.CreateAsync中的錯誤信息會顯示「用戶名[email protected]'已被佔用」,即使用戶沒有用戶名的概念。 –

相關問題