我有两个域A和B.
域A包含一个安全组SEC 。 该组用于访问Web应用程序。 该组是一个安全组,组的types是域本地的。 该域也包含大部分用户。
域B包含一些用户,这些用户是位于域A中的安全组的直接成员
在我的Web应用程序(ASP.NET MVC)中,我使用集成的Windowsvalidation提供程序,它检查用户是否是安全组的成员。 之后,我将用户定位在活动目录中,并根据他们所属的活动目录组分配给用户一堆angular色。
当查询来自域A的用户的tokengroups属性时,我可以看到他们是SEC组的成员。
但是当查询B域的成员时,也使用tokengroups属性,我没有看到tokengroups属性中的SEC组。
我的问题
为什么B领域的成员似乎并不是这个团体的成员呢? 在用户上查找组时,我使用tokengroups属性。
我相信他们的原因是因为当查看组的属性时,我可以看到成员列表中的用户。 此外,它们在Web应用程序中进行身份validation,但是当我的模块尝试从域B中查找成员的组时, SEC组就不在那里。
当前设置的所有组是安全组,还是域本地,真的是最好的方法? 我需要的是一堆“标记”组,我可以从多个域添加组和用户。
要获取用户的安全组,我使用tokengroups属性。 像这样http://tutorials.csharp-online.net/User_Management_with_Active_Directory%E2%80%94Retrieving_the_Users_Token_Groups
我想你需要绑定到一个GC来正确地从Active Directory中检索tokenGroups。 即在你的绑定string中,你应该用GC://replaceLDAP://然后希望这个方法能够工作。