【发布时间】:2011-12-25 12:19:33
【问题描述】:
我有一个类似于以下的数据库结构:
User
----
Id
Name
UserCustomerLink
----------------
UserId
CustomerId
Customer
--------
Id
Name
Address
-------
Id
CustomerId
Address1
Invoice
-------
Id
AddressId
Number
这是一个 asp.net mvc 站点,因此用户可以转到http://localhost/invoice/details/1 之类的地址,该地址将返回 ID 为 1 的发票。
用户需要登录并分配给发票(通过地址)所属的客户(通过 UserCustomerLink 表)。
我的问题是我应该在哪里检查用户是否可以查看发票?
我应该检查发票是否存在并且用户可以查看它然后从数据库中返回,还是应该从数据库中检索项目然后检查?
我担心为查找此信息而执行的数据库查询的数量,我正在寻找一种有效的方法。这是对结构和一些子属性的简化视图,深度超过 3 倍。
在站点注释中,我首先使用实体框架代码,因此如果有办法创建在 Invoice 对象中包含客户 ID 的映射,这可能会解决此问题。
【问题讨论】:
标签: security asp.net-mvc-3 model-view-controller