我目前的Asp.Net MVC 5项目要求UserName的电子邮件地址 . 现在我想将ASPNet Identity v1.0升级到v2.0以利用其所有新功能(see here) .
但是,ASPNet Identity v2.0将Email作为单独的列添加到Users表,并将相应的属性添加到IdentityUser类 .
我不想将UserName复制到这个新的电子邮件列中 . 如何映射IdentityUser的此电子邮件属性以使用现有的UserName列和属性?是否可以忽略此Email属性并跳过在Users表中添加列?有人试过吗?
请分享 .
Update
这是身份2.0的限制 . 我们不能忽略电子邮件属性或将其保留为空 . 某些身份功能无效 . :(
2 回答
我有同样的问题,我解决它的方式是在创建用户时电子邮件地址与用户名相同:
但是,如果您尝试使用重复的用户名创建帐户,则会收到2个验证错误,一个用于用户名字段,另一个用于电子邮件地址 .
为了解决这个问题,通过编辑identityconfig.cs文件,允许电子邮件地址不是唯一的(尽管它们的用户名是唯一的,它们仍然是唯一的):
您可以尝试以下方法之一:
User
类中的Email
属性并取消映射或使用流畅的API来忽略它 .要么
UserName
填充Email
当然,你总是可以忽略
Email
列,如果你只是坐在你的AspNetUsers
表中,并且是最好的方法,但请记住,忽略它你可能会失去ASP.NET身份2可能为你提供的新功能可能想用 .NOTE 但是我不确定选项号1是否适用于
Email
属性,因为如果你不需要它们,你可以如何摆脱其他列 . 我个人碰巧使用新的Email
属性/列,所以我没有尝试过 .不确定它是否对你有帮助,但我想我会分享它以防万一 .