代码之家  ›  专栏  ›  技术社区  ›  AaronSieb

在MVC中,权限应该应用于哪个层?

  •  2
  • AaronSieb  · 技术社区  · 17 年前



    2 回复  |  直到 17 年前
        1
  •  5
  •   Oren Trutner    17 年前

    对问题域实体的访问控制属于模型。这是一个合适的地方,因为(1)对域实体的访问控制与实体本身密切相关,并且(2)这是您可以确保没有两个控制器允许对同一对象使用不同访问策略的地方。

    以下因素增加了一些混淆:

    1. 身份验证发生在控制器级别
    2. 一些工具和演示可用于在控制器层轻松应用访问控制,例如。 this , this 或 that .

    但它仍然属于模型。

        2
  •  1
  •   ignasi35    17 年前

    你们必须使用防御性编程:若你们不控制对控制器上操作的访问,不为给定的用户绘制链接,仍然允许该用户执行操作。另一方面,绘制一个将崩溃的操作链接(如果只检查控制器上的权限)会惹恼你的用户。