使用SharepointAPI获取AD域组的成员Web.AllUsers){...}最重要的是,我可以将域安全组添加到Sharepoint组(如访客),从而一次添加许多用户(更简单的管理)。但是我的代码至少在第一次登录之前看不到这些用户(如果他们有足够的权限)。在这种情况下,我只能看到IsDomainGroup设置为true的域安全组SPUser对象实例。是否可以通过Sharepoint获取域组成员而无需求助于ActiveDirectory查询(我宁愿避免这种情况,因为您可能需要足够的权限来执行类似这样的操作=更多管理:Sharepoint权限+AD权限)。您可以使用方法SPUtility.GetPrincipalsInGroup(MSDN)。除了字符串输入外,所有参数都是不言自明的,这是安全组的NT帐户名:boolreachedMaxCount;SPWebweb=SPContext.Current.Web;整数限制=100;字符串组=“域\安全组”;SPPrincipalInfo[]users=SPUtility.GetPrincipalsInGroup(web,group,limit,outreachedMaxCount);请注意,此方法无法解析嵌套的安全组。另外,执行用户需要有浏览当前网页用户信息的权限(SPBasePermissions.BrowseUserInfo)。更新:privatevoidResolveGroup(SPWebw,stringname,Listusers){foreach(SPPrincipalInfoiinSPUtility.GetPrincipalsInGroup(w,name,100,outb)){if(i.PrincipalType==SPPrincipalType.SecurityGroup){ResolveGroup(w,i.LoginName,用户);}else{users.Add(i.LoginName);}}}列出用户=newList();foreach(SPContext.Current.Web.AllUsers中的SPUser用户){if(user.IsDomainGroup){ResolveGroup(SPContext.Current.Web,user.LoginName,users);}else{users.Add(user.LoginName);}}编辑:[...]进行ActiveDirectory查询(我宁愿避免这样做,因为您可能需要足够的权限才能执行此类操作[...]当然,这是真的,但SharePoint也必须查找AD。这就是为什么applicationpoolserviceaccount需要对AD有读权限,换句话说,如果你运行Revert到processaccount的代码,那么对AD执行查询应该是安全的,我建议你直接查询ActiveDirectory。你正在花费大量精力试图让SharePoint为您调用AD。每个具有域用户访问权限的帐户都应该能够查询嵌套在SharePoint中的AD组。我会去源头。这样您就不必担心关于浏览用户权限或任何东西。在我看来,尝试通过SharePoint代理这只会让你的生活更加困难。以上就是C#学习教程:使用SharepointAPI获取AD域组成员共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
