我有一个使用SQL成员资格提供程序的asp.net应用程序。我知道如何使用相同的成员资格提供程序获取多个应用程序,以便用户可以访问多个站点并使用相同的凭据登录。但是,我当前项目的要求是每个用户只能访问某些应用程序。例如,用户获得访问站点1的凭据,然后在将来的某个时刻,用户需要访问站点2,管理员/管理员必须允许用户访问站点2.或者当经理创建用户的时帐户最初,他/她批准访问用户需要访问的3个站点(或其他)。
所以我的问题是,对于许多应用程序使用1个成员资格提供程序的最佳方法是什么,但只允许用户访问他们批准的应用程序(因此管理员可以管理对应用程序的访问,但为用户提供1个用户名和密码)?我已经考虑过使用角色,但我已经在应用程序中使用了角色来允许访问应用程序中的某些功能。这似乎会变得混乱。
我已经在SO上阅读了大约50个类似的问题,但没有一个问题涉及申请批准要求。提前谢谢。
答案 0 :(得分:0)
这里最简单的直接方法是使用角色。
如果为此目的添加更多角色(每个应用一个),这没什么大不了的。您必须为每个必须可用的应用程序提供基本角色,并在Application_AuthenticateRequest或Application_AuthorizeRequest上进行检查。还有其他方法可以做到这一点,但这是最小的影响,最容易编码(没有必要但是角色检查),并且易于理解。