Active Directory в приложении веб-форм ASP.NET

Я заметил, что есть несколько разных пространств имен / классов для доступа к Active Directory. Каковы различия между использованием следующего?

  • System.DirectoryServices.AccountManagement
  • System.DirectoryServices.ActiveDirectory
  • System.Web.Security.ActiveDirectoryMembershipProvider

1 ответ

Решение

Предметы под AccountManagement иметь дело с работой с различными хранилищами данных типа LDAP. Не только Active Directory, но и NDS и WinNT. Если вы знаете, что ваше резервное хранилище совместимо с LDAP или может переключаться между различными хранилищами LDAP, то это, вероятно, лучше всего использовать.

ActiveDirectory Пространство имен специально для AD. Обычно вам нужно использовать это только в том случае, если вы собираетесь строго придерживаться среды AD.

ActiveDirectoryMembershipProvider имеет немного другой фокус. Обычно это используется веб-приложениями в качестве одного из поставщиков членства. Другие поставщики членства включают в себя SqlMembershipProvider или даже пользовательские, которые вы можете создать. Это используется, когда вашим резервным хранилищем может быть AD, но его также можно изменить на использование сервера SQL или другого случайного хранилища в будущем.


Таким образом, все сводится к тому, как ваше приложение функционирует в настоящее время и как оно может расти в будущем. Если у вас есть настольное приложение, используйте System.DirectoryServices Пространство имен. Если у вас есть веб-приложение, которое может быть развернуто в неизвестных средах, используйте поставщиков членства.

Обратите внимание, что в некоторых приложениях я использовал комбинацию пространства SqlMembershipProvider и пространства System.DirectoryServices. Специально для аутентификации в хранилище LDAP (AD/NDS), пока авторизация остается в моем приложении.

Другие вопросы по тегам