我有两个域名A和乙
域A包含安全组美国证券交易委员会。该组用于访问 Web 应用程序。该组为安全组,组类型为域本地。该域还包含大多数用户。
域 B包含一些用户,这些用户是域中安全组的直接成员A
在我的 Web 应用程序 (ASP.NET MVC) 中,我使用集成的 Windows 身份验证提供程序,该提供程序检查用户是否是安全组的成员。之后,我在 Active Directory 中找到用户,并根据用户所属的 Active Directory 组为其分配一组角色。
当查询域中用户的 tokengroups 属性时A我看到他们是美国证券交易委员会团体。
但是在查询域成员时乙,同样通过使用 tokengroups 属性,我没有看到美国证券交易委员会tokengroups 属性中的组。
我的问题
为什么域中的成员乙似乎不是该组的成员,但实际上他们是?我在查找用户组时使用 tokengroups 属性。
我相信它们是的原因是,当我查看组的属性时,我可以在成员列表中看到用户。此外,他们在 Web 应用程序中进行了身份验证,但是当我的模块尝试从域中查找成员的组时乙, 这美国证券交易委员会群组不存在。
当前设置的所有组都是安全组,并且域是本地的,真的是最好的方法吗?我需要的是一堆“标记”组,我可以向其中添加来自多个域的组和用户。
为了获取用户的安全组,我使用了 tokengroups 属性。像这样http://tutorials.csharp-online.net/User_Management_with_Active_Directory%E2%80%94Retrieving_the_Users_Token_Groups
答案1
我认为您需要绑定到 GC 才能从 Active Directory 中正确检索 tokenGroups。例如,在您的绑定字符串中,您应该将 LDAP:// 替换为 GC://,希望这样可以正常工作。