1

NT Authority \ SystemのセキュリティコンテキストでWindowsサービスとして実行されるサービスがいくつかあります(サービスはNetTCPベースです)。Active Directoryには、次のサービスへのアクセスを許可される6つのグループが格納されています。

ユーザーエージェント承認者管理者(3つのレベルの管理者)

ServiceSecurityContext.Current.WindowsIdentity.Nameを使用してサービスに接続しているユーザーを取得できることはわかっています。

私がする必要があるのは、渡されたユーザーコンテキストが特定のサービスにアクセスできることをビジネスレイヤーで検証することです。また、プリンシパルパーミッションを使用して役割を渡して使用する、会社がサポートする古いアプリケーションに従うようにします。アクセスを確保するためのDemand()メソッド。

私の最初の質問は、PrincipalPermissionにServiceSecurityContextユーザー名と関連するロール(グループ)を渡すと、サービスが同じドメインのADアカウントのコンテキストで実行されているため、バックグラウンドでActive Directoryにアクセスすることを自動的に認識しますか?それとも私がすべき特別なことはありますか?

4

1 に答える 1

3

そうです、ロールを要求すると、IPrincipal.IsInRoleが呼び出されます。これは、プリンシパルが持っている実装を使用します。したがって、Windowsに設定されている場合は、ADをヒットするためのすべての作業を実行します。

于 2009-04-24T21:45:31.813 に答える