C# ASP.Net标识-不同应用程序的中央用户数据库?

C# ASP.Net标识-不同应用程序的中央用户数据库?,c#,asp.net,asp.net-mvc,asp.net-identity,C#,Asp.net,Asp.net Mvc,Asp.net Identity,我想创建一个中央登录数据库,来自潜在不同客户端的多个应用程序将使用该数据库。使用ASP身份,我建立了一个用户和角色数据库 但是,不同的应用程序具有不同的角色,因此我需要一种方法来进一步拆分它们。例如,用户可能是一个应用程序中的管理员,而不是另一个应用程序中的管理员 有没有一种方法可以使用ASP标识来实现这一点?理想情况下,我希望控制某些用户可以访问哪些应用程序,并将单独的角色链接到这些应用程序 如果这超出了ASP.NET C MVC web应用程序的范围,我应该在ASP.NET C MVC we

我想创建一个中央登录数据库,来自潜在不同客户端的多个应用程序将使用该数据库。使用ASP身份,我建立了一个用户和角色数据库

但是,不同的应用程序具有不同的角色,因此我需要一种方法来进一步拆分它们。例如,用户可能是一个应用程序中的管理员,而不是另一个应用程序中的管理员

有没有一种方法可以使用ASP标识来实现这一点?理想情况下,我希望控制某些用户可以访问哪些应用程序,并将单独的角色链接到这些应用程序


如果这超出了ASP.NET C MVC web应用程序的范围,我应该在ASP.NET C MVC web应用程序中使用什么。

一个用户可以属于多个角色,那么为什么不让您的成员资格提供商加载他们的所有角色,并对其进行迭代,以检查他们是否处于该特定角色中?您可以为每个应用程序创建角色权限,例如AppOneAdmin、AppTwoAdmin,并为每个用户分配一个角色权限。如果默认情况下无法处理,我会确保实现了一个自定义成员资格提供程序,并自己编写逻辑来检查角色。

如果您想创建一个完全独立于客户端的中央登录数据库,也许您只需要两个SQL数据库表。这将是初步的工作,但会给你最大的灵活性前进

表1

表2

为了便于阅读,您将在此处合并两个分开的查询:

验证用户从表1中选择“角色”,其中用户ID='4544345'和PWD='ENCRYPTEDPWD'

加入

获取权限从第一次查询中选择系统\u ID、允许\u TYPE where ROLE='ROLEs'

SYSTEM_ID    |     USER_ID     |   PWD        |   ROLE
-------------+-----------------+--------------+----------
somesys      |     4544345     | ENCRYPTEDPWD |   ROLENAME1
someothersys |     4544345     | ENCRYPTEDPWD |   ROLENAME2
SYSTEM_ID    |     ROLE        |   PERMIT_TYPE
-------------+-----------------+----------------
somesys      |     ROLENAME1   |     READ