7

サーバーからAJAXアプリケーションにかなり複雑なアクセス許可を伝達するための最良の方法について議論していますが、最善のアプローチがわかりません。

基本的に、パーミッションを定義して、パーミッションのセット全体を1回のショットで要求し、必要に応じてUIを調整できるようにします(UIの変更は、特定のコンテキストメニュー項目を無効にするのと同じくらい低レベルにすることができます)。もちろん、私はまだパーミッションサーバー側を強制する必要があります。

だから、誰かが最善の方法について何か提案があるかどうか疑問に思っていました

  1. 権限を維持し、サーバーコードで使用する
  2. javascriptの権限に簡単にアクセスできます
  3. 個々の権​​限ごとにサーバーへのラウンドトリップ要求を行う必要はありません

考え?

4

4 に答える 4

2

パーミッション構造を JSON オブジェクト (または必要に応じて XML) としてクライアントに送信すると、クライアント側のコードを使用してそのオブジェクトを操作し、それをサーバーに送り返すことができます。データを保持します。

于 2008-10-28T20:59:50.093 に答える
2

「ユーザー レベル」や「ユーザー タイプ」などの明確なパーミッション セットがある場合は、隠しフィールドに値を渡し、DOM を介して値にアクセスできます。アクセス許可がより細かく設定されていれば、これを行うこともできますが、多くの隠しフィールドがあるか、情報を XML や JSON などの形式にエンコードする必要があります。

これらをビット フラグとして設定すると、単一の数値とマスクの OR を使用して、ユーザーが特定のアクティビティに対するアクセス許可を持っているかどうかを確認できます。これは非常に柔軟で、特定の「権利」が 32 を超えない限り、非常に小さなパッケージ (基本的には unsigned int) でそれらの権利の順列を許可します。

例えば:

0x00000001 //edit permission
0x00000002 //create new thing permission
0x00000004 //delete things permission
0x00000008 //view hidden things permission
   .
   .
   .
0x80000000 //total control of the server and everyone logged in

の権限を持つユーザーは、0x000007編集、作成、および削除できましたが、それ以外はできませんでした。

どちらの場合でも、正しい方向に進んでいると思います。ページ呼び出しごとに 1 回リクエストを行い、アクセス許可をグローバルな JavaScript データ構造に保存し、そこから移動します。AJAX は便利ですが、ページ全体の特定のアクセス許可をすべてサーバーに問い合わせる必要はありません。ページの読み込み時に一度実行し、ページの表示を設定して値をグローバル変数に保存し、イベント関数のアクセス許可をローカルで参照します。

于 2008-10-28T21:31:24.337 に答える
1

私は必ずしもそれを最も「正しい」解決策とは考えていませんが、サーバー側にすべての権限を保持し、ある種の JSON 権限システムではなく、更新された UI を提供することは可能でしょうか?

アプリがどれだけビジーで集中的になると予想されるかに基づいて決定を下す必要がありますが、どちらにしても決定する価値があることは間違いありません

于 2008-10-28T21:03:44.627 に答える
-1

それらをJSONとしてエンコードします。

于 2008-10-28T20:46:20.323 に答える