問題 MVC .NETで権限システムを作成しています。 IModelを継承するすべてのメソッドに特定の属性を強制的に適用しようとしています。例えば許可Autofac:特定のインターフェイスから継承したオブジェクトのすべてのメソッドに属性を設定する方法
、
public class User : IModel
{
[Permission(Admin, Moderator)
public User GetUser(long userId){...}
[Permission(Admin)
public User DeleteUser(long userId){...}
public User EditUser(long userId){...}
}
は許可属性を持っているユーザーのすべてのパブリックメソッドを強制する方法はありますか?たとえば、EditUserにPermission属性がない場合、起動時に上記のコードは失敗します。
解決策
私はこの仕事をするAutofac(依存性注入)を使用して考えていました。しかし、私はまだ.NetやAutofacに精通していません。これをやり遂げる方法の提案?
thats interesting。ありがとう。そのような単体テストを書く方法や、助けてくれるサイトに私を誘導する方法のコード例を教えてください。 ソリューションはきちんと聞こえますが、(セキュリティについて話しているので)非常に安全な側にあるため、単体テストに加えて依存性注入を追加することができます。 – Karan
私はインターセプターアイデアが好きです。 Autofac [http://code.google.com/p/autofac/wiki/DynamicProxy2]を使用すると、特定のインターフェースのメソッド呼び出しをインターセプトすることができます。その場合、IModelになります。誰かがこのようなことをしている[http://stackoverflow.com/questions/6238012/cannot-retrieve-customattributes-in-interceptor-using-dynamicproxy]。 – Biswanath