我最初问这个question当 Identity 处于测试阶段时。从那时起,类和接口发生了很大的变化,并且appearsRTW版本在RC版本的基础上又做了一些修改。原则上我需要实现以下目标。
- 根据我的用户表 tblMembers 验证本地登录,其中包含用户 ID 字段和密码,这是我需要验证的两个项目。
- 可以通过 Controller.User 属性访问我的 tblMember 记录/类(在 MVC5 身份之前,我已经使用会员提供者方法。)无论用户是通过 localuser 方法还是通过其他 OAuth 提供商(Twitter、Google 等)之一登录。
- 尽管使用登录方法,仍能够显示我自己的自定义用户名。本地用户使用用户 ID 1234567 和密码登录,理想情况下我想显示“John Smith (1234567)”,无论身份验证方法如何(本地/Twitter 等)
最初我不确定我的成员类应该继承什么它似乎来自
我应该使用 IdentityUser 的 aspIdentitySample 项目?
public partial class tblMember
{
public int id { get; set; }
public string membership_id { get; set; }
public string password { get; set; }
....other fields
}
是否有任何将现有数据库/用户表与 ASP.NET Identity 系统集成的新的或更新的示例?
我还将身份表添加到我的数据库中。如果您在 Visual Studio 2013 中创建一个新的 Web 项目,您将看到现在在 RTM 中一切都比 RC 更好,而且您将看到
下表
public class ApplicationUser : IdentityUser
{
}
因此,您可以调用表 tblMembers,而不是 ApplicationUser
public class tblMembers : IdentityUser
{
}
您的表 tblMembers 将继承 Id 用户名密码安全标记和一个鉴别器列,表明这是一个 tblMemeber
如果不创建用于身份验证的自定义类,最简单的方法就是将用户名设置为旧用户名和用户 ID 的组合。然后将用户的真实姓名或旧用户名(不带用户 ID)存储在单独的列中。
让用户使用内置用户登录进行注册,他们可以转到管理帐户并单击使用其他服务进行登录。这会将 Google 帐户链接到他们的常规帐户,因此无论他们使用哪一个帐户,都会登录到同一个帐户。如果您有具有连接表信息的用户,我建议您使用与模板中找到的注册方法类似的方法为所有用户播种表。然后只需将新的组合用户名和 ID 与旧的用户名和 ID 相匹配,并在需要的地方填充数据SQL管理工作室。
同样,RC 中扩展 IdentityUsers 的许多问题都已得到修复。 Microsoft 已经向身份用户存储和本教程添加了更多功能http://www.windowsazure.com/en-us/develop/net/tutorials/web-site-with-sql-database/应该很快就会更新。我计划在完成更改数据库后进行自己的演练,但现在我希望我的建议,即使它们是比您可能想要实现的更简单的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)