問題タブ [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 のセキュリティ手順に従って、長い id フィールドを含む IUser インターフェイスを実装する必要があります。ユーザーエンティティクラスのデータ型を変更せずに IUSer インターフェイスを実装するにはどうすればよいですか

0 投票する
2 に答える
3196 参照

nhibernate - NHibernate with Rhino Security - プロキシを 2 つの開いているセッションに不正に関連付けようとしました

ASP.NET MVC 3 アプリケーションで NHibernate の上にあるセキュリティ レイヤーとして Rhino Security を使用しています。セキュア エンティティを削除しようとすると、データベース内の対応するデータをクリーンアップするために使用される OnPreDelete メソッドが Rhino セキュリティによって起動されます。この時点で、「プロキシを 2 つの開いているセッションに不正に関連付けようとしました」というエラーが表示されます。

この件について読んだところ、このエラーは通常、不適切なセッション管理が原因で発生しますが、ソース コードからは、Rhino Security が既存のセッションを使用しているように見えます (以下の Delete メソッド呼び出しが問題のあるメソッドであることに注意してください)。

私のセッション管理も、次のように MVC アクション フィルター属性を使用してトランザクションを開き、コミットするのは非常に簡単です。

この問題が発生している理由について、誰かがガイダンスを提供できますか?

前もって感謝します

0 投票する
2 に答える
650 参照

asp.net - Rhino Security の Entity Framework への移植 - まだ実装されていないのはなぜですか?

私は ASP.NET MVC プロジェクトに (Code First) Entity Framework 4.3 を使用しており、Rhino Security が提供する詳細なアクセス許可ベースの認証機能を実装したいと考えていました。

これは利用可能な唯一の許可ベースのライブラリですが、まだ EF に移植されていません。何が原因なのか、

  1. このようなパーミッション フレームワークは、プロジェクトでは通常の要件ではないため、あまり有名ではありません。
  2. Entity Framework はそれほど効果的ではなく、NHibernate ほど普及していません。
  3. Rhino リポジトリは NHibernate と非常に緊密に結合されているため、単純に EF に移植することはできません

最も重要なことですが、私が本当にEFでそれを使用することを主張している場合、それが不可能であると言う場合は、その理由を理解するのを手伝ってください. そして、あなたの答えが「はい」の場合、それを行う方法を教えてください。


その他のアイデアをお願いします

EF を使用して実際に実装を開始した場合、それは無駄な努力になるでしょうか。私が直面する合併症。

私はEntity FrameworkとMVCの両方の初心者なので、見落としているものはありますか? だから、そこにいるすべてのGENIUSESを助けてください。

始める方法はありますか?

0 投票する
1 に答える
539 参照

c# - アクティビティ/タスク ベースの承認

Rhino のセキュリティは、タスク/アクティビティ ベースの承認を実行する優れた方法を提供しているようです。これはいくつかのサンプルコードです:

userXYZ がリソース 'Messages' でアクティビティ 'Change' を実行できるかどうかをチェックします。これはすべて素晴らしいことですが、リソースとアクティビティがハードコードされているのが好きではありません。これを克服する方法があると思いますか?ありがとう!

0 投票する
0 に答える
61 参照

java - Janino - スクリプトの CPU 時間と割り当てられたバイト数を監視する

インポート、CPU 時間、および割り当てられたバイトを制限することでユーザー関数を安全に実行できるように、Janino を使用してスクリプト サンドボックスを構築しようとしています。

Rhino (javascript コード用) には、環境を構築するときにユーザーがXを定義できるX命令 ごとに呼び出される、observeInstructionCount(Context ctx, int instructionCount)という名前の関数があります。

この関数では、次のようなことができます。

実行時間と割り当てられたバイトを監視します。

ユーザーがループ (例: while(true) {} ) を作成しても、この関数は最終的に呼び出され、以前に定義された実行時間を超えた場合、エラーがスローされ、スクリプトの実行が停止します。

Janinoを使用してこの動作を再現しようとしていますが、スクリプトの実行を監視する同様のメカニズムがありません。ユーザーがブロッキング関数を呼び出した場合、スクリプトを実行しているスレッドで thread.stop() を突然呼び出す以外に、スクリプトを停止する方法がありません。これは問題になる可能性があります。(私が知る限り) thread.interrupt() のような他の呼び出しは、ブロッキング呼び出しを中断しません。

この問題を解決するにはどうすればよいですか?