gpt4 book ai didi

asp.net-mvc - 作为 MVC 中哪一层的一部分,权限应该被应用?

转载 作者:行者123 更新时间:2023-12-03 04:50:32 25 4
gpt4 key购买 nike

权限逻辑应该在MVC的哪一层(模型、 View 、 Controller )处理?

让我澄清一下。显然,UI( View 和 Controller )需要能够访问显示/隐藏组件的权限并处理权限被拒绝的情况。显然,权限应该由模型层保存到数据库中。

但是像这样的“复杂”权限规则又如何呢?
在我正在开发的 wiki/CMS 系统中,每个用户都有一组每页权限(查看、编辑、重命名等)。对于现有页面,这些权限是从数据库中检索的。对于新页面,假定用户拥有所有可能的权限(当他们创建/编辑它时)。

另一个例子是页面列表:
当前用户应该只能看到他们在页面列表中具有查看权限的页面。

Controller 应该处理这个逻辑吗?或者 Controller 应该只负责调用 GetPermissions() 方法(或 GetPageList),并且填充它的所有逻辑都在模型中处理?

最佳答案

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

以下因素增加了一些困惑:

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

尽管如此,它仍然属于模型。

关于asp.net-mvc - 作为 MVC 中哪一层的一部分,权限应该被应用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1139464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com