Database design 对于带有OpenId的Forms auth,什么是好的数据库模式?

Database design 对于带有OpenId的Forms auth,什么是好的数据库模式?,database-design,openid,oauth,dotnetopenauth,security,Database Design,Openid,Oauth,Dotnetopenauth,Security,我正在尝试为数据库模式找到一个好的标准,它可以让我做一些事情。主要是,我正在编写一个需要处理各种登录类型的web应用程序。第一个是标准的ASP应用程序服务登录,第二个是OpenId/oAuth登录,第三个是Active Directory登录 对于处理其中大部分内容的数据模式,有什么好建议?我计划对oAuth和OpenId使用DotNetOpenAuth。我已经知道如何使所有这些项目单独工作,但我正试图找到一种方法,使他们没有一个黑客把他们都绑在一起完成 应用程序还必须基于这些用户管理各种权限。

我正在尝试为数据库模式找到一个好的标准,它可以让我做一些事情。主要是,我正在编写一个需要处理各种登录类型的web应用程序。第一个是标准的ASP应用程序服务登录,第二个是OpenId/oAuth登录,第三个是Active Directory登录

对于处理其中大部分内容的数据模式,有什么好建议?我计划对oAuth和OpenId使用DotNetOpenAuth。我已经知道如何使所有这些项目单独工作,但我正试图找到一种方法,使他们没有一个黑客把他们都绑在一起完成

应用程序还必须基于这些用户管理各种权限。基本上,如果有一个“Admin”组,那么用户(无论是AD帐户、OpenId帐户还是Forms Auth帐户)都可以添加到该组中,并且应用程序可以在页面或方法级别(使用MVC)检查权限

愿意接受建议吗

编辑:因为我没有得到任何建议,我将尝试澄清。基本上,如果我得到一个标识符(比如OpenId用户密钥、oAuth用户密钥或AD域/用户),我如何将其与标准ASP成员资格Profider配置文件/用户绑定?我是否应该使用随机密码创建一个新的会员用户,并通过属性将OpenId/oAuth/AD帐户链接到配置文件

基本上,我正在寻找类似这个网站的东西。用户通过某个东西登录,创建一个配置文件,存储某个东西,以便我们知道它是什么。本质上,我只需要一个想法,如何让所有这些认证方法一起工作


谢谢

我想我会尽力解释我是如何解决这个问题的

首先,我决定放弃标准的ASP Sql Services表,为此我创建了自己的User、AuthenticationServices和AuthenticationServicesUsers表

用户表几乎是“asp\U用户和asp\U成员”表的组合。 AuthenticationServices表是一个列表,我计划在其中放置包含我希望使用的身份验证服务(即Facebook、MySpace、MyOpenId、Google等)的信息

因为我想让用户链接到他们想要的帐户中的尽可能多的服务,所以我设置了第三个表AuthenticationServicesUsers,在其中存储UserId和AuthenticationServiceId

因为这个实现不能与标准的SqlMembershipProvider一起工作,所以我开始编写自己的自定义成员资格提供程序。在这里,我扩展了功能,以接受各种方法,例如CreateUser方法,它不允许我传入密码信息,而是允许我从服务返回一个标识符

这就是我现在所在的地方,我正在通过atm进行调试。我有一些关于用户和会员资格用户的问题,但一旦我能弄清楚,我想我会解决的


谢谢你的回复

这里也有答案。[1]: