在新用户表中存储ASP.net成员资格和openid用户

Kev*_*nUK 7 openid authentication database-design asp.net-membership

为了存储使用OpenId登录的用户的用户信息,我计划创建用户表.

我的问题是这个新用户表将包含我希望asp.net会员用户也能够填写的新字段(配置文件数据).

我的计划是当用户想要用户名和密码时,他们注册并将信息插入到asp.net_Membership中,然后将他们的guid,username,createDate复制到新的用户表中,以便在代码中我可以只查找用户的数据表,如果他们在OpenId或asp.net会员注册,这无关紧要.

我想覆盖Membership.GetUser,以便它查找我的新用户表,我将添加web.config配置文件属性.

是否更好的性能而不是使用Membership.GetUser(我将调用新的User表):

User user = _repository.GetUser(userId);
Run Code Online (Sandbox Code Playgroud)

我的应用程序已经在工作,我需要添加一些页面的引用来支持_repository,所以我只是考虑性能.

我计划创建一个新的用户表吗?我不喜欢复制的想法但是如果将来我想要更改用户名,那么更新新用户表和asp.net_Membership表并不麻烦.

我应该覆盖GetUser并在web.config中添加配置文件属性还是调用我自己的User对象?

创建新用户表并复制核心数据是最好的方法吗?

and*_*inn 1

用您自己的类覆盖 Membership.GetUser 会使其更加“.Net”,并且可能对其他人来说更容易掌握。不要忘记您还需要修改存储过程和视图。

虽然我很困惑,但内置的配置文件提供程序有什么问题吗?一旦您有了用户名,您“只需”调用 Profile.GetProfileByUsername(username) 即可访问您正在查找的“自定义”属性。

如果您由于需要查询/过滤/排序用户而担心使用当前的 asp.net Profile 提供程序。。。

为什么不使用成员资格提供程序和基于表(每个配置文件属性的单独列)配置文件提供程序?

http://www.asp.net/downloads/sandbox/table-profile-provider-samples/

我为我开发的网站实现了这一点,功能之一是能够“找到”像你这样的人,想想社交网络。它需要一些修改才能工作,但它做得很好。