Me gustaría autenticar el nombre de usuario y las contraseñas de mi aplicación en un sistema operativo de Windows con cualquier servicio de directorio. Por ejemplo, podría ser el directorio activo de Microsoft, Novell eDirecotry o SunOne. Ya sé cómo hacer este código de forma nativa para Microsoft Active Direcotry con C#. (Estoy totalmente di por vencido mediante ADSI y la creación de un componente COM nivel bajo)Cómo autenticar LDAP en .NET
La forma im intentar autenticar con Novel eDirecotory es que tengo instalado el proyecto Mono. Dentro del proyecto mono, le proporcionan Novell.Directory.ldap.dll. El código tiene el mismo aspecto que el de Microsoft Active Directory. (http://www.novell.com/coolsolutions/feature/11204.html)
Para SunOne, se me ha indicado que use el mismo código que direcotry activo, . pero la cadena LDAP connecton es un poco diferente (http://forums.asp.net/t/354314.aspx) (http://technet.microsoft.com/en-us/library/cc720649.aspx)
para complicar mi proyecto, la mayoría de los clientes utilizan una "cuenta de servicio:" lo que significa que necesito para unirse con un nombre de usuario y contraseña de administrador antes de que pueda autentica un nombre de usuario y contraseña regulares. Mis preguntas están en 2 partes.
1) Por lo que he explicado anteriormente, es esta la dirección correcta que debería ir para la autenticación en cada servicio direcotory individuo?
2) Siento que no te tienes que hacer nada de este código en absoluto. También creo que la estipulación de usar una cuenta de servicio no es en absoluto importante. Si todo lo que me importa es autenticar un nombre de usuario y contraseña en una máquina con Windows, ¿por qué incluso necesito usar ldap? Quiero decir pensar en eso. Cuando se conecta a su máquina por la mañana, no tiene que proporcionar una cuenta de servicio solo para iniciar sesión. Puedo autenticar fácilmente un nombre de usuario y contraseña en un indicador de DOS utilizando la función runas y me serán denegados o no y podría analizar el archivo de texto. Estoy seguro de que hay otras maneras en que podría pasar un nombre de usuario y una contraseña al sistema operativo Windows en el que estoy y que me dirá si un nombre de usuario y una contraseña son válidos para el dominio en el que están. Estoy en lo correcto? Si es así, ¿qué formas sugieres tienen ustedes?
Michael Evanchik www.MikeEvanchik.com
supongo que es solo microsoft AD y está usando LDAP. Gracias por el código. Mi pregunta es más una forma de universalizar, posiblemente no utilizar LDAP, ya que algunos servidores LDAP requieren un nombre de usuario y contraseña de la cuenta de servicio, solo para enlazar, por lo que incluso puede intentar autenticar a un usuario normal. –
Eso es lo que sugiero: use las credenciales del usuario que inició sesión (suponiendo que esté solicitando su nombre de usuario y contraseña) como cuenta de servicio. Al menos deberían poder consultar y ver su propia cuenta. Si eso funciona, entonces sabrá que la autenticación funciona. Parece una forma bastante universal de verificar si una contraseña es correcta. – Hugoware