6

2つの特定のグループのメンバーがMVCプロジェクト内のいくつかのコントローラとアクションにアクセスできるようにするログインページを作成することで、AD用のロールプロバイダを作成しようとしました。私はそれをフォーム認証で設定し、認証されたユーザーがADに属するグループを列挙することができました。Exchange内のActive Directoryグループとグループの間には何らかの関係があるとします。

しかし、私が設定するよう求められたグループは、ADグループではありません。私は多くのグループを見ていますが、問題のグループはありません。

これらのグループは、Exchangeのグローバルアドレス帳に表示されますが、1対1の関係はないようです。

の関係はありますか?

+0

私の考えであることは、配布リストとセキュリティグループです。 ADでグループを作成すると、そのグループがセキュリティグループか配布リストかを設定できます。セキュリティグループはACLで使用され、配布リストは主に電子メールリストやその他のACL関連のもので使用されます。あなたのグループがどのようにあなたのものになっていますか?一部のAPIでは、セキュリティグループのみを提供し、配布リストは提供しない場合があります。 –

+0

@Harveyありがとう、ありがとう、私が見つけたものです。 .NETでは、問題のグループが配布グループであったときに 'UserPrincipal.GetAuthorizationGroups()'を呼び出していました。 'UserPrincipal.GetGroups()'を呼び出すと、すべてが返されます。回答を投稿すると私は受け入れます。 – Jay

答えて

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

関連する問題