【问题标题】:User permissions to objects with NHibernate使用 NHibernate 对对象的用户权限
【发布时间】: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


    【解决方案1】:
    1. 我不知道在 NHibernate 中如何自动实现。
    2. 我不知道您的项目是否可以使用使用 lambda 的查询 表达式(或标准),如果是这样,我会构建一个抽象层 对继承的实体的所有查询添加过滤器。所以 该逻辑只需要应用一次。

    Ps:这只是一个实现的提示。

    【讨论】:

      猜你喜欢
      • 2019-08-17
      • 1970-01-01
      • 2012-04-28
      • 1970-01-01
      • 2021-02-22
      • 2012-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多