RIA サービスでは、RequiresRole("Admin") のようなドメイン サービス メソッドに属性を追加できます。これにより、そのメソッドを呼び出すユーザーが適切なセキュリティを持っているかどうかが自動的にチェックされます。エンティティのプロパティに対して同様のことをしたいと思います。たとえば、ロール「マネージャ」のユーザーのみが「レート」プロパティを変更できますが、「コメント」プロパティはすべてのユーザーが変更できます。これは可能ですか?
2 に答える
1
プロパティのセキュリティをサポートするより良い方法は、DomainService.Query メソッドをオーバーライドすることです。これにより、大量の過剰なデータをロードすることを回避できます。詳細については、こちらのブログをご覧ください。
于 2011-02-15T17:13:48.570 に答える
0
カスタム検証属性を使用してこれを行うことができます。ユーザーが Manager ロールにあるかどうかを確認し、そうでない場合は変更を許可しない RequiresManagerRole などの属性を作成できます。
ただし、これはユーザーにとってあまり良い経験ではないかもしれません。プロパティが編集可能かどうかを判断するために、何らかの方法で読み取り専用プロパティをフォームにバインドする必要があるでしょう。IValueConverter を使用してそれを行うことができる場合があり、値コンバーターでユーザーの役割をチェックして、読み取り専用かどうかを判断します。
更新:ブラッドはこの質問を見て、それに対処するためにこのブログ投稿を書いたと思います。これは、やりたいことに対処する必要がありますが、別のアプローチをとります。
于 2009-12-08T01:18:12.850 に答える