Исключение при создании профиля пользователя в Sharepoint 2010

#c# #sharepoint #active-directory #sharepoint-2010 #sharepoint-userprofile

#c# #sharepoint #active-directory #sharepoint-2010 #sharepoint-пользовательский профиль

Вопрос:

У нас есть приложение Sharepoint 2010, в котором мы программно создаем профиль пользователя в AD, а затем используем эти данные из AD для дальнейшего создания профиля Sharepoint 2010. Иногда мы получаем следующую ошибку:

Ценю вашу помощь.

ОШИБКА: система.ComponentModel.Win32Exception: В Microsoft не было выполнено сопоставление между именами учетных записей и идентификаторами безопасности.Офис.Сервер.Служебные программы.Win32.AdvApi.Имя учетной записи поиска (строка lpSystemName, строка lpAccountName, идентификатор Sid IntPtr, Int32amp; cbSid, ссылочное доменное имя StringBuilder, Int32amp; cchReferencedDomainName, SID_NAME_USEamp; peUse)_

код:

 SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(strSiteUrl))
{
site.AllowUnsafeUpdates = true;
UserProfile user = null;
HttpContext oldContext = HttpContext.Current;
SPServiceContext context = SPServiceContext.GetContext(site);
HttpContext.Current = null;
UserProfileManager currentUserProfileManager = new UserProfileManager(context);
bool userexist = false;
try
{
user = currentUserProfileManager.GetUserProfile(accountName);
userexist = true;
}
catch (Exception ex)
{
userexist = false;

}

 if (currentUserProfileManager != null)
{
if (!userexist)
{
try
{
user = currentUserProfileManager.CreateUserProfile(accountName);
}
catch (Exception ex)
{
throw;
}
}
}
}
}
  

Ответ №1:

Я думаю, что невозможно создать пользователя с помощью инструментов Sharepoint. Сначала необходимо создать учетную запись в AD, используя, например, это:https://www.codeproject.com/Articles/90142/Everything-in-Active-Directory-via-C-NET-Using

И только после этого настройте репликацию профилей в sharepoint

Комментарии:

1. Привет, IaRaptor, на самом деле это именно то, что мы делаем. Сначала мы создаем учетную запись в AD программно, а затем используем данные учетной записи этой созданной учетной записи AD для создания профиля SharePoint. И при этом иногда мы получаем вышеупомянутую ошибку.

2. Привет, Акаш. Я думаю, вам не следует создавать профили пользователей вручную или с помощью пользовательского кода, когда Sharepoint может сделать это за вас. Используйте службу профилей и Forefront Manager для настройки синхронизации пользователей. Может быть, это поможет? Application management => Manage service,Active Directory to SharePoint 2010.» rel=»nofollow noreferrer»> Ссылка