Проверка подлинности NTLM / Windows и GetAllUsers () - PullRequest
0 голосов
/ 22 июня 2009

Я разрабатываю веб-приложение, которое будет использоваться в интрасети, чтобы режим аутентификации Windows был идеальным. Тем не менее, часть приложения должна иметь возможность получить список пользователей (чтобы выбрать пользователей для назначений. Membership.GetAllUsers () не применяется (самостоятельно) с Windows-аутентификацией. Я не могу использовать ActiveDirectoryMembershipProvider, потому что я не будет разрешено хранить учетные данные для привязки, поэтому любой доступ к AD должен быть выполнен как аутентифицированный пользователь.

Я неделями искал четкий пример или решение этой проблемы, и я начинаю думать, что ни у кого в мире нет такой проблемы.

Является ли мой единственный вариант использовать Application_AuthenticateRequest и соединить два мира "членства" с "Windows Auth"? Но тогда как мне получить список «всех» пользователей в другом месте приложения? Существует ли ActiveDirectoryMembershipProvider, который выдает себя за вызывающего пользователя?

1 Ответ

1 голос
/ 22 июня 2009

AD может содержать очень большое количество пользователей, поэтому в общем случае перечисление всех пользователей обычно нецелесообразно.

Если вы разрабатываете пользовательский интерфейс для выбора пользователей (например, для назначения ролей), я бы сделал нечто подобное существующему пользовательскому интерфейсу Windows для выбора пользователя или группы AD. Например, введите несколько символов и найдите совпадения по имени, фамилии или общему имени. Отобразите все совпадения (до некоторого максимума, скажем, 1000) и позвольте пользователю выбирать из них.

...