Active directory Active Directory组与Exchange中的组之间有什么关系(如果有)?

Active directory Active Directory组与Exchange中的组之间有什么关系(如果有)?,active-directory,exchange-server,roles,active-directory-group,Active Directory,Exchange Server,Roles,Active Directory Group,我的任务是创建一个登录页面,允许两个特定组的成员访问MVC项目中的某些控制器和操作。我着手为AD创建一个角色提供程序。我设法使用表单身份验证对其进行配置,并在AD中枚举经过身份验证的用户所属的组 然而,事实证明,我被要求为其设置此功能的团体不是广告团体。我看到很多团体,但不是有问题的团体 该请求基于这样一个事实,即这些组出现在Exchange的全局通讯簿中,但似乎没有1:1的关系 是否存在任何关系?Active Directory中有两种类型的组:通讯组列表和安全组。安全组用于ACL,而通讯组列

我的任务是创建一个登录页面,允许两个特定组的成员访问MVC项目中的某些控制器和操作。我着手为AD创建一个角色提供程序。我设法使用表单身份验证对其进行配置,并在AD中枚举经过身份验证的用户所属的组

然而,事实证明,我被要求为其设置此功能的团体不是广告团体。我看到很多团体,但不是有问题的团体

该请求基于这样一个事实,即这些组出现在Exchange的全局通讯簿中,但似乎没有1:1的关系


是否存在任何关系?

Active Directory中有两种类型的组:通讯组列表和安全组。安全组用于ACL,而通讯组列表主要用于电子邮件列表和其他与ACL无关的内容

  • GetAuthorizationGroups()仅返回安全组
  • GetGroups()返回安全组以及通讯组列表
请注意,与UserPrincipal.GetAuthorizationGroups()不同,UserPrincipal.GetGroups()只返回用户所属的直接组。如果GroupA包含GroupB,GroupB包含UserX,则UserX.GetGroups()仅返回GroupB,而不返回GroupA


请注意,.NET3.5SP1中存在一些bug。UserPrincipal.GetGroups()可能无法正常工作,您可能想查看此修补程序

我想到的一件事是通讯组列表和安全组。在AD中创建组时,可以设置它是安全组还是通讯组列表。安全组用于ACL,而通讯组列表主要用于电子邮件列表和其他与ACL无关的内容。如何获取用户所属的组?某些API可能只提供安全组,而不提供通讯组列表。@Harvey谢谢,是的,这就是我发现的。在.NET中,我正在调用
UserPrincipal.GetAuthorizationGroups()
,当时讨论的组是通讯组。调用
UserPrincipal.GetGroups()
将返回所有组。贴出答案,我会接受。