Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Неизвестная ошибка GroupPrincipal.FindByIdentity / 3 сообщений из 3, страница 1 из 1
17.09.2013, 09:19
    #38398337
Kuks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неизвестная ошибка GroupPrincipal.FindByIdentity
Привет всем. Столкнулся с непонятной проблемой. Имеется код, определяющий принадлежность пользователя к группе:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
 private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                Right_toolStripStatusLabel.Text = "Права доступа - Пользователь системы";
                using (var ctx = new PrincipalContext(ContextType.Domain))
                using (var userPrincipal = UserPrincipal.FindByIdentity(ctx, Environment.UserName.Trim()))
                using (var groupAdminPrincipal = GroupPrincipal.FindByIdentity(ctx, "Research_Admins"))
                {
                    if (userPrincipal == null)
                    {
                        MessageBox.Show("Отсутствует учетная запись в Active Directory или связь с контроллерами домена. \r\nВы не имеете прав для работы с приложением, приложение будет закрыто", "Research", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        Environment.Exit(0);
                    }
                    Name_toolStripStatusLabel.Text = "Пользователь: - " + userPrincipal.Name.ToString().Trim();
                    if (userPrincipal.IsMemberOf(groupAdminPrincipal) == true)
                    {
                        //Admin-------------------------------------------
                        Admin_Rights = true;
                        Right_toolStripStatusLabel.Text = "Права доступа - Администратор системы";
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Обнаружена ошибка определения принадлежности к группе - " + ex.Message, "Research", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }



Если компилить проект с использованием Net.Framework 4.5, то приложение работает без проблем, но имеются рабочие станции под управлением XP, поэтому пришлось переключиться на 4.0 При этом наблюдаются странности, принадлежность к группе определяется, но генерируется исключение: "Неизвестная ошибка 0x800500". Что за бред? Никто не сталкивался?
...
Рейтинг: 0 / 0
17.09.2013, 10:07
    #38398386
Kuks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неизвестная ошибка GroupPrincipal.FindByIdentity
Нарыл на мсдн. Это баг 4.0, в 4.5 исправлено, решил проблему вызовом другого конструктора с явным указанием имени домена.
...
Рейтинг: 0 / 0
17.09.2013, 11:16
    #38398489
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неизвестная ошибка GroupPrincipal.FindByIdentity
Уже не первый баг в работе System.DirectoryServices.AccountManagement.dll. До этого были проблемы с данной библиотекой под IIS, недавно было . Поделка немного раздражает своей кривизной...
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Неизвестная ошибка GroupPrincipal.FindByIdentity / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]