model-view-controller - 为什么我们不在 MVC 模型中嵌入认证(授权)逻辑?
问题描述
据说 MVC 中的模型包含任何业务逻辑。如果这是真的,那么,我认为身份验证是模型的作用。“你的经理可以改变员工的薪水,但你的员工不能改变你的薪水。” 是业务逻辑。因此,员工模型应该包含验证逻辑,检查向他们发送消息的人是否是经理。
但是,身份验证逻辑通常由控制器处理。为什么模型中没有身份验证逻辑?
解决方案
我认为您混淆了身份验证和授权。身份验证(识别用户)通常由控制器处理,但该用户所做的(如您的示例)是授权,并且通常更深入地嵌入到业务逻辑中。大多数模型将具有某种形式的“用户”,它将具有一组权限,这些权限将传递到业务逻辑层。
您可以看到讨论这个问题的线程(令人作呕,并且带有相当多的恶作剧)
推荐阅读
- c# - 返回 SqlConnection 或 MySqlConnection 的方法
- maven - 无法使用 Jenkins 的 maven-release-plugin 在 JFrog 中上传工件
- python-3.x - FastAPI - 是否有可能有一个同步的 websocket 端点?
- python - 如果整行已重复,如何删除重复项?
- angular - 使用角度索引保存表中特定行的数据
- firebase - 如何将现有的 Firebase 项目连接到现有的 GCP 项目?
- javascript - 检查 localStorage 值是否已更改并将它们添加到数组
- windows - 如何以多个文件的名称创建文件夹,将文件移动到该文件夹中,然后重命名所有这些文件
- c# - 如何使用 c# 互操作从 word 中删除嵌入的对象?
- javascript - 图像超出 div IE11