Подтвердить что ты не робот

Отобразить диалог "Выбрать пользователей и группы" из приложения WPF?

Мне нужно отобразить стандартный диалог "Выбрать пользователей и группы" из приложения .NET/WPF. Я также должен иметь возможность отображать его под 64-разрядной ОС. Я нашел эту статью CodeProject, которая довольно древняя, начиная с .NET 1.1 дней. Он написан на управляемом С++ и отображается как COM-объект, который не будет работать для моих нужд.

Кто-нибудь реализовал или узнал о реализации чистой оболочки .NET/С# для отображения и взаимодействия со стандартным диалоговым окном "Выбрать пользователей и группы", который будет работать с приложением WPF?

4b9b3361

Ответ 1

Ну, я нашел решение. Оказывается, я искал неправильную вещь. Вместо "Выбрать пользователей или группы" правильная вещь для поиска - "Active Directory Object Picker". ADOP - это общее диалоговое окно, которое используется для выбора любого объекта из Active Directory, включая пользователей, группы, компьютеры и т.д. Как правило, это диалоговое окно называется "Выбрать пользователей или группы" большую часть времени.

В интересах кого-либо, кто столкнулся с этой проблемой, я отправляю ссылку на проект CodePlex, Общие диалоги Active Directory.NET, который обеспечивает очень удобную оболочку .NET для этого диалога. Делает его в значительной степени простым в использовании, как и любой другой общий диалог .NET:

http://adui.codeplex.com/

Для тех из вас, кто работает в 64-битной операционной системе или более современной операционной системе (Win2k8 +), вы можете столкнуться с сбоем после выбора пользователей или групп и выбора ok. Решение проблемы находится здесь:

http://www.codeplex.com/ADUI/Thread/View.aspx?ThreadId=38047

Надеюсь, это поможет любому, кто искал то же самое.

Ответ 2

http://adui.codeplex.com/ - это хорошая реализация, но у нее есть утечка памяти, которую я не смог удалить. Если вы его используете и попытаетесь открыть диалоговое окно выбора рекламы несколько раз, вы получите AccessViolationException для чтения/записи памяти. Это плохой знак.

Я использовал другую оболочку из здесь. Он должен быть немного настроен в коде, но AccessViolationExceptions.