C# ASP.NET标识:使AspNetUsers中的其他字段具有唯一密钥
我正在研究ASP.NET标识。默认情况下,C# ASP.NET标识:使AspNetUsers中的其他字段具有唯一密钥,c#,asp.net,asp.net-identity,C#,Asp.net,Asp.net Identity,我正在研究ASP.NET标识。默认情况下,AspNetUsers表附带一些列,例如:ID、用户名、HashPassword、电子邮件、EmailConfirmed、电话等 默认情况下,ID列是主键,用户名具有唯一约束 如何使电子邮件和/或电话等其他字段与用户名具有相同的唯一约束 到目前为止我所做的: 我设法手动将唯一约束添加到数据库中,但是,与用户名字段不同,我无法在应用程序级别进行验证。例如:UserName字段将显示错误消息“Name XXX已被采用”,如果用户尝试使用相同的用户名注册帐户。
AspNetUsers表
附带一些列,例如:ID、用户名、HashPassword、电子邮件、EmailConfirmed、电话
等
默认情况下,ID
列是主键
,用户名
具有唯一约束
如何使电子邮件
和/或电话
等其他字段与用户名
具有相同的唯一约束
到目前为止我所做的:
我设法手动将唯一约束添加到数据库中,但是,与
用户名
字段不同,我无法在应用程序级别进行验证。例如:UserName
字段将显示错误消息“Name XXX已被采用”,如果用户尝试使用相同的用户名注册帐户。要在UserManager层强制实施唯一性,您可以实现自己的IUserValidator并检查自定义唯一性规则您到底想做什么?确保用户名和电子邮件都是唯一的?为什么你关心电子邮件是否唯一,除非你使用它来查找用户,在这种情况下,将用户名作为他们的电子邮件,并且你已经内置了唯一的用户名。用户可以有相同的电话号码。我还看到一些IT公司对多个员工使用相同的电子邮件地址。在将这些字段设置为唯一之前,请仔细考虑。要求一个电子邮件地址只能绑定到一个用户名。我试图将“用户名”改为“电子邮件”,但这也行不通,因为我不知道如何向内置的AspNetUsers属性添加自定义验证。