【问题标题】:Add Active Directory group user to a SharePoint Site Groups将 Active Directory 组用户添加到 SharePoint 网站组
【发布时间】:2012-05-23 17:12:17
【问题描述】:

我们需要定期将 Active Directory 组中的用户添加到共享点组。换句话说,我们需要将 AD 组中的用户同步到 Share Point 组。

我们正在寻找一种服务/工作流程来执行此操作。

请帮助我们解决这个问题

【问题讨论】:

    标签: sharepoint active-directory spgroup


    【解决方案1】:

    也许您可以使用 SPUtility.GetPrincipalsInGroup (MSDN)

    bool reachedMaxCount;
    SPWeb web = SPContext.Current.Web;
    int limit = 100;
    int group = "Domain\\SecurityGroup";
    SPPrincipalInfo[] users = SPUtility.GetPrincipalsInGroup(web, group, limit, out reachedMaxCount);
    

    有一个很好的例子如何使用:https://stackoverflow.com/a/6153943/655293

    【讨论】:

      【解决方案2】:

      据我所知,没有现成的 Web 服务或工作流可以执行此任务。 @HW90 建议的 SPUtility.GetPrincipalsInGroup 方法绝对为您指明了正确的方向。

      我建议您编写自定义 SharePoint 计时器作业 (SPJobDefinition)。在SPJobDefinition.Execute Method 中执行所需的操作:

      public override void Execute(Guid targetInstanceId)
      {
        using (SPSite site = new SPSite("http://server/the/site/collection")
        {
          using (SPWeb web = site.OpenWeb())
          {
            int limit = 100;
            string group = "Domain\\SecurityGroup";
            SPPrincipalInfo[] users = SPUtility.GetPrincipalsInGroup(web, group, limit, out reachedMaxCount);
      
            SPGroup siteGroup = web.SiteGroups["TheGroup"];
      
            // clear the group
            for (int i = siteGroup.Users.Count - 1; i >= 0; i--)
            {
              siteGroup.Users.Remove(i);
            }
      
            foreach (SPPrincipalInfo pi in users)
            {
              siteGroup.AddUser(web.EnsureUser(pi.LoginName));
            }
          }
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-10
        • 2011-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-02
        相关资源
        最近更新 更多