1

我第一次使用带有 SQL 后端的 ASP.NET Membership Provider,我遇到了一些有异味的东西,这告诉我我要么做错了,要么一直没有想到。 ..

Membership 提供者创建了几个表,包括默认的,webpages_Membership它跟踪用户属性,如用户名。在我的应用程序数据库中,我有一个employees表来跟踪我的员工的所有用户数据。该employees表有一个唯一标识符id,用作多个其他表的外键列,以跟踪诸如谁更新了记录、创建了记录、分配给谁、谁留下了评论等。

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

我所做的第二个假设是我完全控制了注册过程,我可以根据电子邮件地址字段简单地将webpages_Membership表格和我的employees表格连接在一起,因为用户的登录名将被迫成为他们的电子邮件。

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

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

  • 我应该为此做些什么?
  • 将会员数据和业务对象数据连接在一起的最佳方式是什么?
  • 我应该这样做吗?
  • 我是否应该将 Employee 对象存储在用户会话中,以免每次事务都返回数据库?
4

1 回答 1

1

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

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

有关更多详细信息,请查看 Jon Galloway 的这篇博文。

于 2013-03-15T17:18:24.370 回答