Добавление пользователя группы Active Directory в группы сайтов SharePoint

Мы получили требование, чтобы пользователь из группы Active Directory регулярно добавлялся в группу точек доступа. Другими словами, нам нужно синхронизировать пользователя в группе AD с группой Share Point.

Мы смотрим на сервис / рабочий процесс для выполнения этого действия.

Пожалуйста, помогите нам в этом вопросе

2 ответа

Perhabs вы можете использовать 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);

Вот хороший пример использования: /questions/34702288/poluchenie-chlenov-domennoj-gruppyi-ad-s-ispolzovaniem-api-sharepoint/34702304#34702304

Насколько я знаю, нет готового веб-сервиса или рабочего процесса, которые бы выполняли эту задачу. SPUtility.GetPrincipalsInGroup Метод, предложенный @HW90, определенно указывает правильное направление.

Я предлагаю вам написать пользовательское задание таймера SharePoint ( SPJobDefinition). Выполните необходимое действие в методе SPJobDefinition.Execute:

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));
      }
    }
  }
}
Другие вопросы по тегам