【发布时间】:2013-11-12 19:47:47
【问题描述】:
假设您有以下三个表格,其中列出了重要的列:
用户:user_id 实体:entity_id 事件:event_id、entity_id UserEntityPermissions: user_id, entity_id, is_admin
现在,当用户请求访问以查看给定一组搜索参数的事件或事件列表时,我想确保用户只能查看他们已获得许可的实体的事件。 NHibernate 中是否有任何设施可以做到这一点?
此外,还有一个更复杂的权限级别,其中事件可以与其他对象相关联,我们称它们为位置: 地点:location_id 事件位置:event_id、location_id UserLocationPermissions: user_id, location_id
在这种情况下,不是实体管理员的用户应该只能查看他们有权访问所有链接位置的事件。似乎一旦我开始添加这些类型的权限,向事件查询中添加任何过滤器就会完全无法管理。
您会使用什么模式来简化中间层以确保用户只能访问他们应该看到的事件?
您是否总是将所有事件从数据库返回到中间层,然后检查每个事件以查看用户是否具有权限?这样做似乎需要大量开销。
【问题讨论】:
标签: c# nhibernate permissions