【发布时间】:2026-01-03 23:55:02
【问题描述】:
我正在使用 Visual Studio 2013 开发一个 WEB API asp.net 项目,并且我正在实施我的自定义身份模型以进行自定义注册。例如,我在 RegisterBindingModel 中添加了一个电子邮件字段。
这就是我所做的:How to extend asp.net web api 2 user?
我添加了 email 属性,我需要该属性是唯一的(作为 UserName),但默认情况下可以重复该 email 属性。我的问题是如何使此电子邮件属性独一无二,例如 UserName?我读过可以使用 UserValidator 设置唯一属性,但找不到如何设置。你能告诉我如何做到这一点,使用 UserValidator 还是最好的方法?
如何将 UserName 属性定义为唯一的?我到处都找不到。
谢谢。
【问题讨论】:
-
我不明白 - 你想使用用户的电子邮件地址作为他们的用户名,还是你想要一个针对用户的附加属性来保存他们的电子邮件地址?为什么不把用户名设为电子邮件地址?
-
因为我需要用户名的用户名属性和电子邮件的电子邮件属性,相反我需要知道如何制作独特的属性;这是主要问题。因为谁知道我将来需要哪些其他字段才能设置为唯一字段。谢谢你的建议
-
向 ApplicationUser 表添加唯一约束。如何执行此操作取决于您使用的 EF 迁移策略。
-
是的,我知道我可以在数据库级别上做到这一点,但我需要通过 Asp.net Identity 做到这一点。以前在数据库级别完成,但我不喜欢该解决方案,主要是因为我必须通过代码处理错误;但如果我使用 Asp.net Identity 处理,错误将存储在模型中。 UserName 没有唯一约束,并且设置为唯一,这就是为什么我问它是如何制作的;这就是为什么我要这样做,因为我知道它可以通过 Asp.net Identity 完成;但问题是不知道怎么做。
-
您使用的是会员服务提供商吗?*.com/questions/3775182/…
标签: c# asp.net asp.net-mvc asp.net-web-api asp.net-identity