【发布时间】:2013-04-22 13:57:32
【问题描述】:
我的数据库如下所示:
[表]用户配置文件
- 用户名
[表格]类别
- 类别 ID (PK)
- 用户名(链接到 UserProfile - 这是记录所有者)
- ProductID(FK 到 Product Table 相关记录)
[表格]产品
- 产品 ID (PK)
- CategoryId(导航属性)
登录的用户只能编辑他们拥有的类别和产品。我很高兴根据控制器从视图中收到的 User.Identity.Name 和 CategoryID 来查找 Category,如果我没有得到记录,那么它不存在或用户不拥有它。我开始认为这不是最好的方法,但它确实有效......
我的问题与处理此类产品检查的最佳方式有关?
- 我是否应该有一个使用 ProductId 导航属性的查询,然后获取
UserName值? - 这应该通过控制器中的 linq 查询还是 Products 类上的方法来完成?即
prod.ConfirmOwnerIs(User.Identity.Name) - 这应该是像
Helpers.ConfirmUserCanEditObject(prod, User.Identity.Name)这样的外部辅助方法吗?
这个例子稍微简化了,我的真实数据模型有好几层。这对我来说是一个学习项目,所以我试图避免做一些不必要或以低效方式影响数据库的事情,或者成为维护和测试的野兽。我希望在这里得到一些指导和智慧。谢谢。
【问题讨论】:
标签: asp.net-mvc-4 user-permissions