我想创建一个中央登录数据库,可能来自不同客户机的多个应用程序将使用该数据库。使用ASP Identity,我建立了一个用户和角色数据库。
不同的应用程序有不同的角色,所以我需要一种方法来进一步拆分它们。例如,用户可能在一个应用程序中是管理员,而在另一个应用程序中不是。
是否有一种方法来做到这一点使用ASP身份?理想情况下,我想控制哪些应用程序某些用户可以访问,并有单独的角色链接到这些应用程序。
如果这超出了ASP Identity的范围,我应该在ASP中使用什么?. NET c# MVC web应用程序
用户可以属于多个角色,那么为什么不让您的成员资格提供者加载他们的所有角色并遍历它们以检查他们是否在该特定角色中呢?您可以为每个应用程序(例如AppOneAdmin, AppTwoAdmin)创建角色(权限),并将您拥有的角色分配给每个用户。如果默认情况下它不处理它,我将确保实现一个自定义成员资格提供程序,并自己编写检查角色的逻辑。
如果你想创建一个"中央登录数据库"它完全独立于您的客户端,也许您只需要几个SQL数据库表。(这将是最初的工作,但会给你最大的灵活性向前发展)
TABLE1
SYSTEM_ID | USER_ID | PWD | ROLE
-------------+-----------------+--------------+----------
somesys | 4544345 | ENCRYPTEDPWD | ROLENAME1
someothersys | 4544345 | ENCRYPTEDPWD | ROLENAME2
表
SYSTEM_ID | ROLE | PERMIT_TYPE
-------------+-----------------+----------------
somesys | ROLENAME1 | READ
您将连接两个查询(为了方便阅读,在这里分开):
Authenticate user (select 'ROLEs' from Table1 where USER_ID='4544345' AND PWD='ENCRYPTEDPWD').
与
Get Permissions (select SYSTEM_ID, PERMIT_TYPE where ROLE='ROLEs'(从第一个查询)