加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

数据库设计 – 在新用户表中存储ASP.net成员资格和openid用户

发布时间:2020-12-12 07:26:10 所属栏目:MsSql教程 来源:网络整理
导读:为了存储使用OpenId登录的用户的用户信息,我计划创建用户表. 我的问题是这个新的用户表将包含我希望asp.net成员资格用户能够填写的新字段(配置文件数据). 我的计划是当用户想要用户名和密码时,他们注册并将信息插入到asp.net_Membership中,然后将他们的guid,u
为了存储使用OpenId登录的用户的用户信息,我计划创建用户表.

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

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

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

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

User user = _repository.GetUser(userId);

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

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

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

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

解决方法

创建一个将providerUserKey映射到用户的OpenID的新表.当用户使用其OpenID注册时,将OpenID添加到providerUserKey映射到此新表.当用户返回您的站点并使用其OpenID登录时,请从映射表中查找其providerUserKey.使用providerUserKey使用providerUserKey登录.

这种方法有许多优点.

>它允许用户注册并使用用户名/密码登录.
>它允许用户在其配置文件中注册多个OpenID.
>映射表独立于其他成员资格API,因此您可以在不破坏提供程序的情况下以任何方式更改它.
>映射表可以像两列一样简单,在OpenID列上有索引.

您可以考虑散列用户的OpenID,将其转换为Guid,并存储Guid而不是完整的URL.这将使数据库列和&索引更小更快.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读