我正在使用SQLMembershipProvider,并希望添加有关用户的更多信息。创建一个新数据库,并在每个新用户创建时为他们创建一个条目,这是最好的方法吗?如果是这样,有什么理由不使用SQLMembershipProvider UserID值作为我的新DB的users表中的PK?
或者,有什么好的理由在我的新数据库中创建一个新的UserID并使用SQLMembershipProvider UserID作为FK吗?
发布于 2009-07-29 15:41:15
我想不出为什么它不能工作,或者为什么你不应该这样做(userid as PK)
我不知道为什么您要使用一个单独的数据库来处理所有事情,我可能只会在当前数据库中创建该表,并使用userid将其设置为aspnet_users表的FK。
发布于 2009-07-29 15:50:02
如果您要重写成员资格提供程序,我会将所有PK列从GUID切换为BITINT。我这么做有两个原因;第一,序列号更容易使用和理解;第二,使用BIGINT而不是GUID会带来性能上的好处。我还将使用我自己的id列,该列可用于与应用程序中的其他表一样,并删除sql成员资格提供程序中缺省情况下的id列。要做到这一点,你需要为提供者中的每个函数提供代码,这不是一个小任务。
发布于 2009-07-29 16:01:43
我已经围绕现有的数据库模式创建了一个包装器,其中包含一个从MembershipUser派生的类(包含附加属性)和一个MembershipProvider派生类(创建派生的MembershipUser类的实例)。
我只使用成员身份验证和更新方法,因为其他支持API在某种程度上是有限的。我有一个单独的创建/编辑用户API的管理员使用。
该解决方案目前已在多个网站上使用,效果良好。
https://stackoverflow.com/questions/1201069
复制相似问题