0

私には管理者、ユーザーなどのサイトの役割がありますが、それは問題ありません。

しかし、私が合法的な申請書(または同様のもの)を持っているとしましょう。というエンティティがありますCase。今、私は多くのケースを持つことができ、すべてのユーザーが特定のケースにアクセスできるわけではありません。フレッドとトムはCase1にアクセスできるはずですが、ジーナとレベッカだけがCase2にアクセスできるはずだとしましょう。

とても簡単ですよね?ケースがあり、ユーザーはケースに属することができます。それが最初の部分です。2番目の部分は、FredがCase1の「管理者」になり、大きな変更を加えることができるように「Case Roles」を設定する方法ですが、TomはCase1の単なる「ユーザー」であり、マイナーなことしかできず、読み取り専用にすることができます。アクセスなど

おそらくカスタム属性などを実装する必要があることはわかっていますが、この特定の種類のものの例をWeb上で見つけることができません。しかし、これはほとんどのビジネスアプリケーションで非常に一般的であるに違いないと思います。(BasecampやHighriseなど)

更新別の例を挙げましょう:

Basecampのようなサービスアプリケーションとしてプロジェクト管理ソフトウェアを利用してください。ユーザーは「プロジェクト」を作成できます。次に、そのユーザーは他のユーザーを自分の「プロジェクト」に招待できます。ただし、作成ユーザーは、プロジェクトにユーザーごとに異なる権限を割り当てることができます。基本的な質問は、ASP.NETMVCでこの種のことをどのように行うかです。

4

1 に答える 1

0

あなたの質問から私が理解しているのは、各ケースはエンティティ (db の行) であり、異なるケース (エンティティ) に対して異なるアクセス権を異なる役割に割り当てたいということです。この場合、ケースのアクセス権を他の役割に割り当てるスーパー管理者の役割を持つことができます。この情報に基づいて、カスタム atuhorize 属性を記述し、スーパー管理者によって現在ログインしているユーザー/ロールにデータベースから付与されたアクセス許可を取得し、この基準に基づいて決定を下すことができます。さらに、ケース作成時のアクセス権はジェネリックです。ケース作成前はケースが存在しないため、ケースを作成する権限を持っている人は誰でも任意のケース (case1 または case49) を作成できます。ケースが作成されると、ケースの作成者がこのケースの権限を設定することもできます。

于 2011-04-06T19:16:32.437 に答える