任务是创建一个允许两个特定组的成员访问MVC项目中的某些控制器和操作的登录页面,我开始创建AD的角色提供程序。我设法使用表单身份验证配置它,并枚举经过身份验证的用户在AD中所属的组。
然而,事实证明,我被要求设置的组不是AD组。我看到很多团体,但不是那些有问题的团体。
该请求基于以下事实:这些组出现在Exchange的全球通讯录中,但似乎没有1:1的关系。
是否有任何关系?
答案 0 :(得分:7)
Active Directory,通讯组列表和安全组中有两种类型的组。 ACL中使用安全组,而分发列表主要用于电子邮件列表和其他非ACL相关的内容。
请注意,与UserPrincipal.GetAuthorizationGroups()不同,UserPrincipal.GetGroups()仅返回用户所属的直接组。如果GroupA包含GroupB且GroupB包含UserX,则userX.GetGroups()仅返回GroupB但不返回GroupA。
请注意,.NET 3.5 SP1中存在漏洞。 UserPrincipal.GetGroups()可能无法正常工作,您可以查看此修补程序http://support.microsoft.com/kb/969166