У меня есть требование к проекту, в котором мне нужно пройти аутентификацию в ActiveDirectory в удаленном / отключенном приложении WPF.
Вероятно, есть несколько способов сделать это, но какой подход лучше всего использовать ActiveDirectory MembershipProvider?
Мне нужно:
Это должно происходить из удаленного места, вне сети, в которой находится Active Directory.





Теперь из приложения WinForms или WPF вы можете воспользоваться преимуществом «Службы клиентских приложений» (спасибо MS за очень общее имя, поиск помощи теперь очень болезненный!).
Это позволяет вам подключиться к службе WCF, которая может проверять логины. По приведенной выше ссылке показано пошаговое руководство, которое показывает, насколько легко заставить все это работать. Когда у вас есть работающее приложение, вы можете изменить свою конфигурацию, чтобы указать на другой MembershipProvider и / или RoleProvider.
Стоит отметить, что готовое решение включает MembershipProvider с именем ActiveDirectoryMembershipProvider, но для Active Directory нет RoleProvider.
Если вам действительно нужна возможность получать роли (или группы) и вы работаете с .NET 4.0, вы можете воспользоваться преимуществами добавленного нового API Active Directory, который упрощает все, а именно System.DirectoryServices.AccountManagement. Для базовых сервисов членства и ролей вам понадобится следующее, чтобы создать свои собственные базовые MembershipProvider и RoleProvider:
Вы можете реализовать столько API, сколько необходимо, вы должны найти все необходимое в новом пространстве имен AccountManagement для этого.