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对象?
创建新用户表并复制核心数据是最好的方法吗?
用您自己的类覆盖 Membership.GetUser 会使其更加“.Net”,并且可能对其他人来说更容易掌握。不要忘记您还需要修改存储过程和视图。
虽然我很困惑,但内置的配置文件提供程序有什么问题吗?一旦您有了用户名,您“只需”调用 Profile.GetProfileByUsername(username) 即可访问您正在查找的“自定义”属性。
如果您由于需要查询/过滤/排序用户而担心使用当前的 asp.net Profile 提供程序。。。
为什么不使用成员资格提供程序和基于表(每个配置文件属性的单独列)配置文件提供程序?
http://www.asp.net/downloads/sandbox/table-profile-provider-samples/
我为我开发的网站实现了这一点,功能之一是能够“找到”像你这样的人,想想社交网络。它需要一些修改才能工作,但它做得很好。
| 归档时间: |
|
| 查看次数: |
1474 次 |
| 最近记录: |