如何在数据库中加入登录的用户和用户记录?

时间:2013-03-15 03:38:35

标签: c# sql asp.net-mvc asp.net-membership authentication

我第一次使用SQL后端与ASP.NET成员资格提供程序一起工作,我遇到了一些有气味的东西,这告诉我,我做错了或者只是没有想到这一切通过......

成员资格提供程序会创建一些表,其中包括跟踪用户属性(如用户名)的默认值webpages_Membership。在我的应用程序数据库中,我有一个employees表,用于跟踪员工的所有用户数据。 employees表具有唯一标识符id,用作多个其他表的外键列,用于跟踪更新记录,创建记录,分配给谁以及留下评论的人等事项等等。

我做的第一个假设是我不想将业务逻辑和字段放在webpages_Membership表中,也不想在外键关系中使用UserId列。

我做的第二个假设是我完全控制注册过程,我可以简单地根据电子邮件地址字段加入webpages_Membership表和我的employees表。用户的登录将被强制成为他们的电子邮件。

现在我的脑海里闻起来很可怕......

获取此值User.Identity.Name并查询数据库中的employees表只是为了填充Employee对象,以便我可以在记录上设置Id字段似乎错误

  • 我应该为此做些什么?
  • 将成员资格数据和业务对象数据连接在一起的最佳方法是什么?
  • 我应该这样做吗?
  • 我应该将Employee对象存储在用户的会话中,以便不为每次交易返回数据库吗?

1 个答案:

答案 0 :(得分:1)

您使用的是哪个版本的ASP.NET?

因为如果您使用的是某些最新版本,则可以使用SimpleMembershipProvider,它允许您使用不同的模型和数据库结构。

Check this blog post from Jon Galloway for more details.