我正在使用 ASP.NET MVC 4 和带有 Code First 迁移的实体框架制作应用程序。
在名为 的类InitializeSimpleMembership
中,有以下代码行:
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile",
"UserId", "UserName", autoCreateTables: true);
其中"UserName"
是指包含用户用户名的列。这些用户名必须是唯一的吗?我仅在此应用程序中通过 Facebook 使用 OAuth 身份验证。因此,在 UserName 字段中,我存储了用户的 Facebook 名称(例如“George Smith”)。显然,可能有很多 George Smiths 使用我的应用程序,这会导致任何冲突吗?
我注意到WebSecurity
该类的许多方法,例如WebSecurity.GetUserId
采用以下参数:string userName
. 如果用户名不是唯一的,那么我不确定这将如何工作。此外,OAuth 的默认 FacebookClient 会返回一个 ExtraData 字典,其中包含例如ExtraData["username"] = george.smith@gmail.com
. 似乎他们想将电子邮件存储在 UserName 下(以便 UserNames 是唯一的)。
我对 SimpleMembership 的了解不是很透彻。有人可以为我澄清一下存储在 UserName 下的值是否应该是唯一的,以便一切顺利运行?
谢谢你。