0

現在の2層アプリケーション

ASP.NET(メンバーシップ/ロール)– BL – DAL – DB

ユーザーが認証(メンバーシップ)された後、ロールを使用して、「レポート」や「管理」などのさまざまなメニュー項目への承認を容易にします。ただし、承認の一環として、応答フィルタリングも考慮する必要があります。たとえば、ユーザーの役割に関係なく、IDでステートメントを取得する方法は、確立されたデータベース関係を介してユーザーに属するステートメントのみを取得できるユーザーに限定する必要があります。これを容易にするために、Webアプリケーションはセッション中に各BLオブジェクトに注入されるプロファイル(POCO)を維持します(おそらくこのオブジェクトはに組み込まれている必要があります)IIdentity)。その後、BL内で、ID Xのリクエストが実際にステートメントを返す必要があるかどうかを判断できます。これは、このステートメントをリクエストしているユーザーがわかっており、ステートメントとそれにアクセスできるユーザーとの関係がわかっているためです。 。

将来の3層アプリケーション

ASP.NET(メンバーシップ/ロール)– WCF – BL – DAL – DB

認証は同じままのようです。WCFサービスをパスワードで保護して、Webアプリケーション(またはユーザー/パスワードを持つ他のアプリケーション)のみがアクセスできるようにすることができます。ただし、応答フィルタリングを容易にするにはどうすればよいですか?ASP.NET IPrincipal/IIdentityをサービスに渡すためのシームレスなメカニズムはありますか?はいの場合、ASP.NET以外のクライアントを同じサービスに接続している場合、これによりどのように制限されますか?そうでない場合、この情報はリクエストdtoまたはリクエストヘッダーの一部である必要がありますか?

4

2 に答える 2

0

XACML を 3 層アプリケーションに適用できます。ウィジェット (メニュー、ボタンなど)、ビジネス ロジック、および WCF 層で承認が得られます。

すべてのリクエストは、XACML の外部で記述された同じ承認ポリシーに反します。ルールは次のように言えます。

  • 管理者は管理ボタンを表示できます
  • ユーザーは自分が所有するステートメントを表示できます (つまり、ユーザーは statement.owner==user.id の場合にステートメントを表示できます)

データベース関係を実装する必要はなくなりました。承認がはるかに簡単になります。

HTH

于 2013-01-17T15:07:03.657 に答える
0

Re:

ASP.NET の IPrincipal/IIdentity をサービスに渡すシームレスなメカニズムはありますか?

WS-Trust を見ることができます: weblogs.asp.net/cibrax/archive/2006/09/08/SAML-2D00 -STS -implementation-for-WCF.aspx

于 2013-01-17T15:08:45.337 に答える