#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»> Ссылка