Dado un nombre de usuario y una contraseña para un usuario de dominio, ¿cuál sería la mejor manera de autenticar a ese usuario programáticamente?Autenticación de usuarios de dominio con System.DirectoryServices
6
A
Respuesta
8
Puede usar algunos hacks para autenticar solamente.
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 el usuario no es válido, la entrada de directorio NativeObject no se puede acceder y lanza una excepción. Si bien esta no es la forma más eficiente (las excepciones son malas, bla, bla, bla), es rápido y sin dolor. Esto también tiene la gran ventaja de trabajar con todos los servidores LDAP, no solo con AD.
16
Parece que .NET 3.5 agregó un nuevo espacio de nombres para tratar este problema - System.DirectoryServices.AccountManagement. Ejemplo de código es el siguiente:
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
El espacio de nombres también parece proporcionar una gran cantidad de métodos para la manipulación de una cuenta de dominio (el cambio de contraseñas, que expira contraseñas, etc).
Cuestiones relacionadas
- 1. ¿Cómo se integran los "Usuarios" en mi modelo DDD con la autenticación de usuarios?
- 2. jquery autenticación de dominio cruzado
- 3. Autenticación de formularios de mezcla con autenticación de Windows
- 4. Intenté acceder a un dominio de aplicación descargado al utilizar System.DirectoryServices
- 5. PHP "Session_regenerate_id" y Autenticación de usuarios
- 6. Obteniendo autenticación de usuarios de AD objectGuid de asp.net
- 7. ¿Sockets de dominio UNIX no accesibles entre los usuarios?
- 8. Usuarios de Django y autenticación de fuente externa
- 9. Arquitectura para Autenticación/Autorización de usuarios móviles y web
- 10. ASP.NET | Autenticación de formularios | Obtenga TODOS los usuarios iniciados (lista de todos los usuarios o conteo)
- 11. Administración de usuarios, autenticación y complemento acl para CakePHP?
- 12. Autenticación para usuarios en una aplicación de una sola página?
- 13. Crear usuarios con pasaporte
- 14. (Ruby, Rails) Autenticación basada en roles y administración de usuarios ...?
- 15. JMeter con Autenticación de Windows?
- 16. Autenticación de Windows integrada para varios dominios
- 17. Autenticación básica de IIS con LDAP
- 18. Suplantación de usuarios a través de NTLM
- 19. Módulo de autenticación de Kohana 3, obteniendo usuarios con el rol 'personal' o 'gerente'
- 20. Autenticación de formularios en subdominios
- 21. autenticación de ventanas integradas de dominio cruzado en IIS para el sitio web de intranet ASP.NET
- 22. System.DirectoryServices no se reconoce en el 'Sistema' espacio de nombres
- 23. Cakephp Auth con múltiples tablas de "Usuarios"
- 24. Autenticación de grano fino con RESTlet
- 25. Filtrado de usuarios que pueden iniciar sesión con Devise
- 26. Autenticación LDAP con JBoss 7
- 27. CircularRedirectException con autenticación de google
- 28. Autenticación de usuario con CodeIgniter
- 29. solicitud de autenticación con HTTPGet
- 30. autenticación de Android con Kerberos
nunca deberías detectar TODAS las excepciones como esa ... COMException es lo que se lanzará cuando no puedas acceder al servidor LDAP, así que eso es lo que estarías atrapando. –