2

我正在使用 SQLMembershipProvider 并希望添加有关用户的更多信息。这是创建新数据库并在创建每个新用户时为每个新用户创建条目的最佳方法吗?如果是这样,是否有任何理由不使用 SQLMembershipProvider UserID 值作为新数据库中用户表中的 PK?

或者,有什么好的理由在我的新数据库中创建一个新的 UserID 并使用 SQLMembershipProvider UserID 作为 FK?

4

3 回答 3

2

我想不出为什么那不起作用或为什么你不应该那样做的原因(用户 ID 作为 PK)

我不确定您为什么要为所有内容使用单独的数据库,我可能只是在当前数据库中创建表并使用 userid 作为 aspnet_users 表的 FK 进行设置。

于 2009-07-29T15:41:14.980 回答
1

如果您要重写成员资格提供程序,我会将所有 PK 列从 GUID 切换到 BITINT。我会这样做有两个原因;一个序列号更容易使用和理解,第二个是使用 BIGINT 而不是 GUID Id 的性能优势。我也将只使用我自己的 id 列,该列可用于喜欢应用程序中的其他表,并删除默认出现在 sql 成员资格提供程序中的表。为此,您需要为提供程序中的每个函数提供代码,这不是一项小任务。

于 2009-07-29T15:50:01.637 回答
0

我已经围绕我现有的数据库模式创建了一个包装器,其中一个派生自MembershipUser包含附加属性的类,以及一个MembershipProvider创建派生类实例的派生MembershipUser类。

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

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

于 2009-07-29T16:01:43.267 回答