问题标签 [rhino-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
155 浏览

c# - 在用户 ID 数据类型不长的情况下实现 rhino 安全性

我想在我的应用程序上实现 rhino 安全性。我有其 Id 字段为 GUID 的用户实体类。

根据 Rhino 安全说明,我必须实现 IUser 接口,其中包含一个很长的 id 字段。现在如何在不更改用户实体类的数据类型的情况下实现 IUSer 接口

0 投票
2 回答
3196 浏览

nhibernate - NHibernate with Rhino Security - 非法尝试将代理与两个打开的会话关联

我在 ASP.NET MVC 3 应用程序中使用 Rhino Security 作为 NHibernate 之上的安全层。当我试图删除一个安全实体时,Rhino 安全触发了一个 OnPreDelete 方法,用于清理数据库中的相应数据。此时我收到一个非法尝试将代理与两个打开的会话相关联的错误。

从我对这个主题的阅读来看,这个错误通常是由错误的会话管理引起的,但是从源代码看来,Rhino Security 正在使用现有的会话(注意,下面的 Delete 方法调用是有问题的方法):

我的会话管理也非常简单,使用 MVC 操作过滤器属性来打开和提交事务,如下所示:

任何人都可以提供有关为什么会发生此问题的指导吗?

提前致谢

0 投票
2 回答
650 浏览

asp.net - 将 Rhino 安全性移植到实体框架 - 为什么它不存在?

我正在为 ASP.NET MVC 项目使用(代码优先)实体框架 4.3,并希望实现 Rhino Security 提供的基于权限的细粒度授权功能

虽然它是唯一可用的基于权限的 Lib,但尚未移植到 EF。可能是什么原因,

  1. 这样的 Permission Framework 不是项目中常见的需求,所以没那么出名
  2. 实体框架没有那么有效,因此不如 NHibernate 无处不在
  3. Rhino Repository 与 NHibernate 紧密结合,无法简单地将其移植到 EF

最重要的是,如果我真的坚持将它与 EF 一起使用,并且如果您告诉我这是不可能的,请您帮我理解为什么。如果你的答案是肯定的,你能帮我解决一下如何做吗


任何其他想法请

如果我真的开始使用 EF 实现它,那将是徒劳的。我将面临的任何并发症。

由于我只是 Entity Framework 和 MVC 的新手,有什么我忽略的吗。所以,请帮助我所有的天才。

任何想法如何开始?

0 投票
1 回答
539 浏览

c# - 基于活动/任务的授权

Rhino 安全似乎提供了一种执行基于任务/活动的授权的好方法。这是一些示例代码:

它检查 userXYZ 是否可以对资源“消息”执行活动“更改”。这一切都很好,但我不喜欢硬编码资源和活动的方式。你认为有办法克服这个问题吗?谢谢!

0 投票
0 回答
78 浏览

security - 如何将业务规则映射到 Rhino 安全实体组?

我正在使用 Rhino Security 来保护庞大数据库上的 NHibernate 实体。部分要求是实现将映射到 Rhino EntityGroups 的业务规则,以根据登录的用户 UserGroup 权利过滤掉数据:

我的问题是:

1)在安全管理员中定义上述业务规则然后将它们映射到EntityGroups是否有意义

2)我应该在什么阶段将 Account 实体添加到 EntityGroup '机密帐户',显然我可以在保存/更新帐户时执行但是,可能有 n 个类似的 EntityGroups 并即时评估当前 Account 实体成员资格将对性能产生重大影响

请建议

谢谢,肉山

0 投票
0 回答
61 浏览

java - Janino - 监控脚本 CPU 时间和分配的字节

我正在尝试使用 Janino 构建一个脚本沙箱,以便我可以通过限制导入、CPU 时间和分配的字节来安全地执行用户函数。

在 Rhino(用于 javascript 代码)中,我有一个名为observeInstructionCount(Context ctx, int instructionCount)的函数, 它在每个X指令中调用,其中X可以由用户在构建环境时定义。

在这个函数中,我可以做这样的事情:

监控执行时间和分配的字节数。

即使用户创建了一个循环(例如 while(true) {} ),这个函数最终也会被调用,如果超过了之前定义的执行时间,它将抛出一个错误并且脚本执行将停止。

我正在尝试使用Janino复制此行为,但我没有类似的机制来监视脚本执行。如果用户调用阻塞函数,我没有办法停止脚本,只能在执行脚本的线程上突然调用 thread.stop(),这可能会出现问题。任何其他调用,如 thread.interrupt() (据我所知)都不会中断阻塞调用。

关于如何解决这个问题的任何想法?