【发布时间】:2013-11-12 21:42:36
【问题描述】:
我的数据库中的用户有一个非唯一的显示名称;唯一的唯一标识符是 UserId。
通常,我会使用以下命令将用户添加到角色:
Roles.AddUserToRole(user.Username, role);
但现在我没有用户名,所以我需要重新考虑所有与角色相关的工作。
我能想到的一个混乱的选择是将每个用户的 Id 复制到 Username 字段中,以满足 SimpleMembershipProvider 的要求...尽管我宁愿以某种方式使用扩展方法来处理这个问题,如果它甚至是远程可取的并且可以做到的话所以...只是这样我就不必在我的用户表中添加一个虚假的列。
这里的任何帮助将不胜感激。
更新:
即使我将 userId 复制到 username 列以使 SimpleMembership 正常工作,我仍然需要一个用户名来创建用户:
WebSecurity.CreateUserAndAccount(model.UserName, model.Password, etc)
所以我不知道该怎么办,除了滚动我自己的会员资格。
再次更新:我刚刚意识到我可以提取我的电子邮件字段并使用用户名列来存储唯一的电子邮件地址。我仍然有兴趣了解如何解决这个问题。
【问题讨论】:
-
@ShayanNafisi - 我的用户模型上没有用户名。只需通过电子邮件显示名称/身份验证
-
你需要 userId。让它自动生成
-
@ShayanNafisi 我有一个自动生成的用户 ID :)
-
所以应该这样做。那有什么问题呢?
-
@ShayanNafisi 问题是如果我可以避免的话,我不想在我的用户表上有一个额外的列。
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 simplemembership