ディレクトリやファイルへのアクセスを認証および制御するのに適した、メンバーシップ プロバイダーとロール プロバイダーを使用したフォーム ベースの認証を使用している ASP.Net Web フォーム アプリケーションがあります。今では、個々のエンティティ インスタンスに対する読み取り、書き込み、および削除アクセスを制御する必要があることに気付きました。たとえば、顧客のインスタンスを更新または削除できるようにするためです。これを実装する良い方法を考えようとしていますが、どこから始めればよいかわかりません。ASP.Net MVC の Authorize 属性について読みましたそして、ASP.Net MVC でアクションを制御できるようにメソッドを装飾するという、似たようなものがあるとよいと考えました。ただし、Web フォームの世界でこれを達成するためのすぐに使える方法は知りません。また、その方向に進むのに役立つフレームワークやその他のツールも知りません。既存のソリューションおよび/または独自の実装を設計する方法の両方に関して、どんな提案も大歓迎です。
1051 次
2 に答える
6
最も簡単な方法は、問題のメソッドに必要な役割のメンバーであることをユーザーに要求することですPrincipalPermissionAttribute
。
[PrincipalPermission(SecurityAction.Demand, Role="Supervisor")]
[PrincipalPermission(SecurityAction.Demand, Role="Owner")]
public void DeleteSomething() {...}
これは、スーパーバイザーまたはオーナーができることを意味することに注意してくださいDeleteSomething()
。
于 2009-02-11T23:42:50.330 に答える
0
「PrincipalPermission」は良いアプローチではないと思います。もし、別の役割に対してDeleteSomthing()を許可する必要がある場合はどうなりますか?同様に、DeleteSomthing()の既存の役割を削除する必要がある場合はどうなりますか?唯一の方法は、コードレベルで属性を変更することです。これは、大規模なプロジェクトではまったく実現可能ではありません。
私も素晴らしい解決策を探しています。
于 2009-09-24T17:59:56.593 に答える