Я пытаюсь получить имя менеджера для пользователя из активного каталога, я создал консольную программу для его проверки, и все работает отлично, когда я пытаюсь выполнить код в моей Sharepoint 2010 это просто дает мне исключение «Произошла операционная ошибка».
При дальнейшей отладке я вижу, что это ошибка с моим основным текстом, который генерирует исключение. «Для выполнения этой операции в соединении должно быть выполнено успешное связывание». Код ниже (примечание: код в попытке поймать точно так же, как и у меня есть это в моей консольного приложения.):Sharepoint 2010 не привязан к Active Directory
public override void ItemAdding(SPItemEventProperties properties)
{
base.ItemAdding(properties);
try
{
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, Environment.UserName);
string samAccountName = "";
if (user != null)
{
// do something here....
samAccountName = user.SamAccountName;
}
//Get the manager name from the active directory
var domain = System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName;
using (DirectoryEntry dir = new DirectoryEntry("LDAP://" + domain))
{
using (DirectorySearcher ds = new DirectorySearcher(dir, "samAccountName=" + samAccountName))
{
SearchResult result = ds.FindOne();
string managerName = result.Properties["manager"][0].ToString();
}
}
}
catch(Exception ex)
{
var message = ex.Message;
}
}
Является ли ApplicationPoolIdentity запущенным как NetworkService? – Daro