Добавление пользователя группы 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));
}
}
}
}