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

或者,有没有充分的理由在我的新数据库中创建新的UserID并使用SQLMembershipProvider UserID作为FK?

有帮助吗?

解决方案

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

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

其他提示

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

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

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

此解决方案目前正在多个站点上使用,效果很好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top