У нас есть группа в Active Directory с более чем 70 тысячами учетных записей пользователей. Мне нужно проверить, является ли кто-то членом этой группы. Код будет работать в веб-приложении с большим количеством одновременных пользователей. Я бы предпочел придерживаться System.DirectoryServices.AccountManagement по возможности уменьшить количество кода, написанного для этого приложения.
По-видимому, существует 2 основных подхода к проверке того, является ли кто-либо участником:
- Используйте UserPrincipal.IsMemberOf() чтобы получить логическое значение, указывающее членство
- Используйте UserPrincipal.GetGroups(). чтобы получить список членства в группах, который я могу проверить вручную
Я хочу избежать перечисления 70 тыс. пользователей, чтобы проверить, входит ли кто-то в группу, поэтому вариант 2 кажется более эффективным по номинальной стоимости. Когда я приступаю к работе, я могу провести некоторые тесты против обоих методов, но я хотел получить некоторую информацию о том, что эти методы действительно делают под прикрытием. Я на правильном пути в своих размышлениях?
И последнее замечание о библиотеке, которую я использую. Могу ли я повысить производительность, если полностью откажусь от System.DirectoryServices.AccountManagement и напишу свои собственные запросы LDAP?