2012-05-23 8 views
0

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

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

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

ответ

1

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); 

Существует хороший пример того, как использовать: https://stackoverflow.com/a/6153943/655293

0

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

Я предлагаю вам написать пользовательскую задачу таймера 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)); 
     } 
    } 
    } 
}