6

2 つの特定のグループのメンバーが MVC プロジェクトの一部のコントローラーとアクションにアクセスできるようにするログイン ページを作成する任務を負って、AD 用のロール プロバイダーの作成に取り掛かりました。フォーム認証を使用して構成し、認証されたユーザーが AD で属するグループを列挙することができました。

しかし、これを設定するように依頼されたグループは、AD グループではないことが判明しました。多くのグループを見かけますが、問題のグループは見当たりません。

この要求は、これらのグループが Exchange のグローバル アドレス帳に表示されるという事実に基づいていましたが、1 対 1 の関係はないようです。

関係はありますか?

4

1 に答える 1

7

Active Directory には、配布リストとセキュリティ グループの 2 種類のグループがあります。セキュリティ グループは ACL で使用されますが、配布リストは主にメーリング リストやその他の非 ACL 関連のもので使用されます。

  • UserPrincipal.GetAuthorizationGroups() は、セキュリティ グループのみを返します。
  • UserPrincipal.GetGroups() は、セキュリティ グループと配布リストを返します。

UserPrincipal.GetAuthorizationGroups() とは異なり、UserPrincipal.GetGroups() は、ユーザーが属している直近のグループのみを返すことに注意してください。GroupA に GroupB が含まれ、GroupB に UserX が含まれている場合、userX.GetGroups() は GroupB のみを返し、GroupA は返しません。

補足として、.NET 3.5 SP1 にはバグがあります。UserPrincipal.GetGroups() が正しく機能しない可能性があります。このホットフィックスを確認してください http://support.microsoft.com/kb/969166

于 2011-01-08T01:54:09.880 に答える