2

特定のデータへのアクセスというビジネスレイヤーを強化できる必要があります。UIは、ビジネスレイヤーを呼び出して、ユーザーの詳細を受け取ることができます。その後、UIはユーザーに対して.Save()を呼び出すことができ、ビジネスレイヤーはデータアクセスレイヤーを呼び出してユーザーを保存します。

ただし、ここでの問題は、ユーザーがuserdetailを受信して​​保存を呼び出すことができるようにするだけでなく、「admin」の役割を持つ認証済みユーザーのみを使用できるようにすることです。これを達成できるように、ビジネスレイヤー/ UIでこの認証/承認をどのように行うのですか?

UIにASP.NETを使用しており、メンバーシップ/ロールプロバイダーを読み込んでいますが、これは実際のUI用のようです。将来的にはいくつかの異なるUIが存在する可能性があるため、ビジネスレイヤーでセキュリティを確保する必要があります。たとえば、WindowsフォームやAsp.net。

考えや提案をいただければ幸いです。

ありがとう。

4

2 に答える 2

1

調査したい別のアプローチ (.NET 3.5 / 4.0 で開発している場合) は、Windows Identity Foundationを使用することです。

承認ロジックを Web サイト外に保持することに関心がある場合 (複数のフロントエンドからビジネス レイヤーを使用することを期待している場合はそうなると思います)、WIF を検討することを強くお勧めします。ADFS v2.0 (Windows Server 2008 R2 のサーバーの役割) を使用して、Active Directory と統合することもできます。

Patterns & Practices は、主題を掘り下げるのに非常に役立つガイドをリリースしました。

于 2010-07-19T00:39:07.263 に答える
0

ASP.NET ロール/メンバーシップ プロバイダーには、再利用できるストレージおよびコード レベルのコンポーネントが含まれています。これらは単なる UI ではありません。

きめ細かなアクセス制御 (ページ上の特定の機能など) には、エンタープライズ ライブラリを使用できます。コードを再利用して、BL レイヤーと UI レイヤーの両方で機能を保護できます。

最も必要なリンクは次のとおりです: Determining whether a User Is Authorized to Perform a Task

以下も参照してください。

EntLib の以前のリリースでは、Authorization Manager は重要なコンポーネントでしたが、最近のバージョンでは必須ではなく、代わりにAuthorizationRuleProvider. 参照: Windows Authorization Manager を使用したアプリケーションの開発.

データのフィルタリングは、データの複雑さ、量、およびパフォーマンスのニーズによっては、もう少し問題があります。

  • 1 つの戦略は、すべてを返すシンプルな DAL を用意し、現在のユーザーが BL で見ることが許可されていないデータを取り除くことです。
  • アプリケーションが使用するロールの知識を持つ DAL を設計します。 ただしDAL.GetCustomersForAdmin()DAL.GetCustomersForMember()これらのロールの使用に縛られるため、これは少し危険です。
  • セキュリティを意識したデータベース/DAL を用意し、同じメソッドを使用して、ユーザーが表示を許可されているデータのみを常に返します。DAL.GetCustomers()
于 2010-07-19T00:29:35.097 に答える