0
調用以下代碼將當前已通過身份驗證的用戶分配給名爲Admin
的角色。用戶已經使用正確配置的電子郵件地址創建,我可以使用它進行身份驗證。但是,我想使用下面的演示代碼將用戶添加到角色。將用戶添加到用戶名爲電子郵件地址的角色
public ActionResult AddUserToRole()
{
var userId = User.Identity.GetUserId();
using (var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())))
{
IdentityResult result = userManager.AddToRole(userId, "Admin");
}
return RedirectToAction("Index");
}
該用戶是使用新MVC 5應用程序中的模板代碼創建的。模板代碼要求輸入用戶名的電子郵件地址。然而,AddToRole
線的結果返回result.Succeeded = false
與
用戶名[email protected]的錯誤是無效的,只能包含字母或數字 。
爲什麼角色的調用應用驗證器,但創建用戶的調用不是?這都是模板代碼。
現在,鑑於這是全部模板代碼,我是否缺少某些內容或需要修改模板以讓用戶提供不是電子郵件地址的用戶名。
非常感謝。
看來您的上下文或數據庫配置方式不允許在用戶名屬性中使用點和/或'@'符號。 – DevilSuichiro
Duplicate http://stackoverflow.com/questions/19460078/configure-microsoft-aspnet-identity-to-allow-email-address-as-username –
用戶名被設置爲一個完美的電子郵件。只有將用戶添加到角色纔會導致問題。 –