У меня был тот же вопрос, и я изучаю его для поставщика, который хочет добавить AD AD-аутентификацию к своему ПО. Краткий ответ: да и нет: -)
Длинный ответ: я проанализировал WindowsPrincipal.IsInRole
Он не запрашивает AD (через LDAP) о членстве в группе, а вместо этого использует SID группы в маркере Kerberos и проверяет, содержится ли SID группы в заявке. Так что для этого он не попадает в AD, но:
Если вы используете IsInRole(string)
, он выполняет поиск по имени ==> SID (используя вызов win32 LsaLookupNames2 ()).
Итак, рекомендуется сначала преобразовать имя группы в SID, а затем использовать только SID:
http://msdn.microsoft.com/en-us/library/wak3kd03(v=vs.110).aspx
Из соображений производительности рекомендуется перегрузка IsInRole (SecurityIdentifier) в качестве предпочтительной перегрузки для определения роли пользователя.
Я еще не проверял это, но собираюсь сделать это в следующий раз.
Я надеюсь найти время для выполнения теста (проверка ~ 40 групп в корпоративной AD с> 100K объектами с помощью этого метода).
Но это может занять неделю или около того.
Пожалуйста, сообщите мне, если вас интересует результат теста.