Étant donné un nom d'utilisateur et un mot de passe pour un utilisateur de domaine, quelle serait la meilleure façon d'authentifier cet utilisateur par programmation?Authentification des utilisateurs de domaine avec System.DirectoryServices
6
A
Répondre
8
Vous pouvez utiliser certains hacks pour uniquement authentifier.
Try
Dim directoryEntry as New DirectoryEntry("LDAP://DomainController:389/dc=domain,dc=suffix", "username", "password")
Dim temp as Object = directoryEntry.NativeObject
return true
Catch
return false
End Try
Si l'utilisateur n'est pas valide, l'entrée de répertoire NativeObject n'est pas accessible et déclenche une exception. Bien que ce ne soit pas le moyen le plus efficace (les exceptions sont mauvaises, bla bla bla), c'est rapide et indolore. Cela a également l'avantage super-cool de travailler avec tous les serveurs LDAP, pas seulement AD.
16
Il semble que .NET 3.5 ait ajouté un nouvel espace de noms pour résoudre ce problème - System.DirectoryServices.AccountManagement. Exemple de code est ci-dessous:
Private Function ValidateExternalUser(ByVal username As String, ByVal password As String) As Boolean
Using context As PrincipalContext = New PrincipalContext(ContextType.Domain, _defaultDomain)
Return context.ValidateCredentials(username, password, ContextOptions.Negotiate)
End Using
End Function
L'espace de noms semble également fournir beaucoup de méthodes pour manipuler un compte de domaine (changement des mots de passe, mots de passe venant à échéance, etc.).
Questions connexes
- 1. Authentification des utilisateurs dans ASP.NET
- 2. Authentification des utilisateurs Kerberos dans Apache
- 3. Utiliser un compte de domaine gmail avec authentification IMAP avec authentification SAML ne fonctionne pas
- 4. Authentification NTLM avec GetHttpConnection
- 5. Impossible d'ajouter des utilisateurs de domaine à Reporting Services 2008
- 6. Gestion des utilisateurs, authentification et plugin acl pour CakePHP?
- 7. System.DirectoryServices vs system.directoryservices.accountmanagement
- 8. Gestion des utilisateurs avec Postgresql
- 9. Tomcat 6.0 authentification du gestionnaire via JDBC domaine
- 10. utilisateurs dans un domaine sans scripts de connexion
- 11. comportement étrange dans IIS 7.0 - System.DirectoryServices
- 12. ASP.NET MVC - authentification/appartenance à un sous-domaine croisé
- 13. Authentification Windows avec Eclipse
- 14. Comment ajouter des utilisateurs de compte de domaine à la liste d'authentification Windows SQL Server 2005?
- 15. MPMoviePlayerController avec authentification
- 16. IIS 6.0 Authentification intégrée: 401.1 avec IE7
- 17. Authentification Kerberos avec python
- 18. Suivi des utilisateurs inter-domaines
- 19. Tomcat: domaine d'installation pour l'authentification pour utiliser les utilisateurs Windows
- 20. Authentification et sécurité ASP.NET avec la session
- 21. ASP.NET/IIS: Authentification Windows, configuration des tentatives maximales et redirection
- 22. Domaine personnalisé avec Joomla
- 23. C# 3.0: Trouver des serveurs SMTP dans un domaine
- 24. DoubleRenderError dans restful_authentication avec acts_as_state_machine lors de l'activation des utilisateurs
- 25. Masquage de domaine avec HTML
- 26. Authentification Windows avec ASP.NET MVC
- 27. Authentification de formulaires ASP.NET avec seulement le nom d'utilisateur
- 28. Connexion/authentification WebDav avec PHP
- 29. Qt Authentification HTTP avec QNetworkAccessManager
- 30. Authentification HTTP avec références Web
vous ne devriez jamais attraper TOUTES les exceptions comme ça ... COMException est ce qui sera jeté quand vous ne pouvez pas accéder au serveur LDAP de sorte que c'est ce que vous attraper. –