在数据访问级别上保护Web应用程序

时间:2009-05-04 15:45:41

标签: asp.net-mvc security architecture

请考虑以下设置:

  1. 多租户webapp。
  2. 租户创建公司帐户,公司帐户下有用户帐户。
  3. 用户有角色,有一个特殊角色“所有者”(创建公司帐户的用户)。
  4. 我想让用户编辑其他用户帐户(某些管理员任务),但必须满足两个条件:

    1. 没有人可以编辑所有者的数据(所有者除外,当他编辑自己的个人资料时,自己的个人资料编辑是相同的用户编辑)。
    2. 用户可以访问用户数据,仅在公司帐户内编辑用户。
    3. 该应用程序使用MVC架构。目前我在网络层检查这两个条件,它对我有用,但我有一些顾虑。如果我使用某种API或某种其他类型的数据消费者,我可能会“忘记”重新强制执行这些条件。此外,应用程序中还有其他对象具有类似的功能要求,并且对它们有类似的限制,因此我最好提出某种模式来强制执行我对数据访问级别的限制。

      有人可以推荐一些值得研究的方法吗?

      谢谢!

1 个答案:

答案 0 :(得分:1)

我相信方面或拦截器应该能够帮助你。如果您使用对象,您应该能够拦截包含您的业务数据的请求,并检查您的用户是否可以使用它。然后拦截器可以停止或继续执行。