Сбой функции поиска в группе Active Directory
Помогите! Я'мы пытались написать функцию, которая будет подтверждать пользователяs членство в группе Active Directory, и, хотя оно работает, если член входит в группу, оно выдает исключение, если пользователь не входит.
Вот функция:
private bool IsUserMemberOfGroup(string user, string group)
{
using (var ctx = new PrincipalContext(ContextType.Domain))
using (var groupPrincipal = GroupPrincipal.FindByIdentity(ctx, group))
using (var userPrincipal = UserPrincipal.FindByIdentity(ctx, user))
{
if (groupPrincipal == null)
{
return false;
}
else
{
return userPrincipal.IsMemberOf(groupPrincipal);
}
}
}
И вот YSOD:
Ошибка сервера в «/» Заявка.Неизвестная ошибка (0x80005000)Описание:Произошло необработанное исключение во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Детали исключения:
System.Runtime.InteropServices.COMException: неизвестная ошибка (0x80005000)
Ошибка источника:
<pre>
Line 34: else
Line 35: {
Line 36: return userPrincipal.IsMemberOf(groupPrincipal);
Line 37: }
Line 38: }
</pre>
Я нене знаю, если этосвязаны, но когда я перехожу через функцию, groupPrincipal.Members.Count выдает исключение типа "System.NullReferenceException», с Count.Base показывает исключение с сообщением "Ссылка на объект не установлена на экземпляр объекта ".
Какого черта'происходит? Почему выигралбул по имени IsMemberOf просто вернуть false, когда кто-тоне член?
Спасибо,
Даниил