【问题标题】:Approve multiple applications with single sql membership provider使用单个 sql 成员资格提供程序批准多个应用程序
【发布时间】:2023-03-20 16:54:01
【问题描述】:

我有一个使用 SQL 成员资格提供程序的 asp.net 应用程序。我知道如何使用相同的会员提供程序获取多个应用程序,以便用户可以访问多个站点并使用相同的凭据登录。但是,我当前项目的要求是每个用户只能访问某些应用程序。例如,用户被授予访问站点 1 的凭据,然后在将来的某个时间,用户需要访问站点 2,并且经理/管理员必须允许用户访问站点 2。或者当经理创建用户的帐户最初,他/她批准访问用户需要访问的 3 个站点(或其他任何站点)。

所以我的问题是,为许多应用程序使用 1 个会员资格提供商的最佳方式是什么,但只允许用户访问他们获得批准的应用程序(因此管理员可以管理对应用程序的访问,但为用户提供 1 个用户名和密码)?我曾考虑过使用角色,但我已经在应用程序中使用角色来允许访问应用程序中的某些功能。看起来会变得很乱。

我已经阅读了大约 50 个关于 SO 的类似问题,但没有一个涉及申请批准要求。提前致谢。

【问题讨论】:

    标签: asp.net asp.net-membership sqlmembershipprovider


    【解决方案1】:

    这里最简单直接的方法是使用角色。

    如果您为此添加更多角色(每个应用一个角色),这没什么大不了的。您对每个必须可用的应用程序都有一个基本角色,并在 Application_AuthenticateRequest 或 Application_AuthorizeRequest 上进行检查。还有其他方法可以做到这一点,但这种方法影响最小,最容易编码(除了角色检查之外不需要任何东西)并且易于遵循。

    【讨论】:

    • 我认为是这样,只是想确保没有为此设计的特定功能。有没有办法创建角色的“子角色”?问题是每个应用程序的逻辑角色可能会有所不同。那么会有一个“APP1”角色让用户访问App 1,然后是“SALES”和“OPERATIONS”角色?还是我一直在做类似“APP1”、“APP1_SALES”和“APP1_OPERATIONS”角色的事情?谢谢。
    • 如果不做自己的定制工作,你就会被上面的命名约定所束缚——抱歉!!
    猜你喜欢
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多