私は2つのドメインを持っていますあそしてB
ドメインAセキュリティグループを含むSECこのグループは、Web アプリケーションにアクセスするために使用されます。このグループはセキュリティ グループであり、グループの種類はドメイン ローカルです。このドメインには、ほとんどのユーザーも含まれます。
ドメインB少数のユーザーが含まれており、これらのユーザーはドメインにあるセキュリティグループの直接のメンバーです。あ
私の Web アプリケーション (ASP.NET MVC) では、統合された Windows 認証プロバイダーを使用して、ユーザーがセキュリティ グループのメンバーであるかどうかを確認します。その後、Active Directory でユーザーを検索し、ユーザーが所属する Active Directory グループに基づいて、ユーザーに一連のロールを割り当てます。
ドメインのユーザーのtokengroupsプロパティを照会する場合あ彼らがメンバーであることがわかりますSECグループ。
しかし、ドメインのメンバーを照会するとBまた、tokengroupsプロパティを使用しても、SECtokengroups プロパティ内のグループ。
私の質問
ドメインのメンバーがB実際にはグループのメンバーであるのに、グループのメンバーではないようです。ユーザーのグループを検索するときは、tokengroups プロパティを使用します。
私がそう思う理由は、グループのプロパティを見るとメンバーのリストにユーザーが表示されるからです。さらに、彼らはWebアプリケーションで認証されていますが、私のモジュールがドメインからメンバーのグループを見つけようとするとB、SECグループは存在しません。
すべてのグループがセキュリティ グループであり、ドメイン ローカルである現在の設定は、本当に最善の方法でしょうか。必要なのは、複数のドメインからグループとユーザーを追加できる一連の「マーカー」グループです。
ユーザーのセキュリティグループを取得するには、tokengroupsプロパティを使用します。http://tutorials.csharp-online.net/User_Management_with_Active_Directory%E2%80%94Retrieving_the_Users_Token_Groups
答え1
Active Directory から tokenGroups を正しく取得するには、GC にバインドする必要があると思います。つまり、バインド文字列で、LDAP:// を GC:// に置き換えると、うまく動作するはずです。