Пользователь в группе Active Directory

Qwe.Qwe1
Дата: 16.04.2014 16:30:06
Хочу проверить, состоит ли пользователь (из-под которого запущен процесс) в группе Active Directory. На некоторых ПК код ниже работает, а на некоторых выдает исключение "unhandled exception Unknown error (0x80005000)" - почему это происходит?

public static bool IsUserMemberOf(string sGroupName)
{
    using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
    {
        using (GroupPrincipal groupPrincipal = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, sGroupName))
        {
            if (groupPrincipal != null)
            {
                using (UserPrincipal userPrincipal = UserPrincipal.Current)
                {
                    if (userPrincipal != null)
                    {
                        return userPrincipal.IsMemberOf(groupPrincipal);
                    }
                }
            }
        }
    }
    return false;
}
Cat2
Дата: 16.04.2014 21:07:10
Qwe.Qwe1,

Ну что могу сказать. Исследуйте ситуацию.
Когда нет разумных причин приходится искать самые дикие.

Сначала посмотрите, всегда ли, как вы пишите, исключения происходят на определенных машинах.

Чем эти машины отличаются от тех, где все выполняется нормально? Версия оси, сервис-паки.

На какой строке вылетает исключение?

Замените Using в этой строке на блок try-catch. Возможно будет получена более подробная информация.
Qwe.Qwe1
Дата: 17.04.2014 09:58:58
Вот на этой строке ошибка:
return userPrincipal.IsMemberOf(groupPrincipal);


Unhandled Exception: System.DirectorySeruices.AccountManagement.PrincipalOperationException: Unknown error <0x80005000> -> System.Runtime.InteropSeruices.COMException: Unknown error <0x80005000>
Qwe.Qwe1
Дата: 17.04.2014 10:03:59
На самом деле мне помог ответ во здесь:
http://stackoverflow.com/questions/4518472/userprincipal-getgroups-fails-with-unknown-error

Почему - не понятно, но заработало!