2009-07-29 109 views
2

我正在使用SQLMembershipProvider,并且想要添加有关用户的更多信息。这是创建新数据库并为每个新用户创建条目的最佳方式吗?如果是这样,是否有任何理由不使用SQLMembershipProvider UserID值作为我的新数据库users表中的PK?扩展ASP.NET成员资格提供程序,PK == FK ==好吗?

或者,有没有什么很好的理由在我的新数据库中创建一个新的用户标识并将SQLMembershipProvider用户标识用作FK?

+0

这取决于您尝试添加的信息的性质,但您是否考虑过使用配置文件功能来存储信息? – 2009-07-29 16:04:48

+0

谢谢勃兰特。我之前没有遇到过配置文件功能。只需阅读http://aspnet.4guysfromrolla.com/articles/101106-1.aspx这是一个很好的介绍。它不适合这个项目,除非我自己做了个人资料提供者。 – 2009-07-30 01:18:49

回答

2

我想不出一个原因,那就没办法了,或者为什么你不应该这样做的(用户ID作为PK)

我不知道为什么你会使用一个单独的数据库的一切,我可能只是在当前数据库中创建表并使用userid作为FK将其设置为aspnet_users表。

1

如果您打算重写成员资格提供程序,我会将所有PK列从GUID切换到BITINT。我会这样做的原因有两个:一个连续的数字更容易处理和理解,其次是使用BIGINT而不是GUID ID的性能优势。我也只是使用我自己的id列可以用来喜欢应用程序中的其他表,并删除默认情况下在SQL成员资格提供程序中的一个。为此,您需要为提供者中的每个功能提供代码,这不是一项小任务。

0

我创建了一个包装在我现有的数据库模式,从MembershipUser包含附加属性派生的类,并创建派生MembershipUser类的实例的MembershipProvider衍生物。

我只使用成员身份验证和更新方法,因为其他支持API有一定的限制。我为管理员使用了一个单独的创建/编辑用户API。

此解决方案目前正在多个站点上使用,并且运行良好。

相关问题