CLR: .Net / Mono / Boo / Otros CLR > ASP .NET

 Autenticacion Con Active Directory

(1/1)

Javier Santamaria:
Hola,

He leido este articulo:
http://msdn2.microsoft.com/en-us/library/ms998360.aspx

Y he seguido los pasos, pero cuando trato de hacer login siempre me lo rechaza. He probado utilizando el dominio delante de mi nombre de usuario, mi nombre de usuario solo, mi nombre de usuario tipo email en lugar de tipo ruta (como dice en el tutorial)... pero nada, sigue sin darme acceso.

Algun podriais decirme si falta algo o como puedo debuguear ese codigo?

PD: Obviamente el nombre del dominio lo he cambiado al mio y accedo a AD para validar nombre de usuario y contraseña con una cuenta de administrador.

Espero alguan sugerencia.

Muchas gracias

Un saludo

Javier Santamaria:
Hola de nuevo,

Por casualidades de la vida me he dado cuenta de que tecleando el password en orden inverso funciona. Y esto es porque cada vez que escribo algo en el campo del login el cursor se mueve a la primera posicion, por lo que si lo escribimos a la inversa nos queda la el password escrito correctamente.
Ejemplo -> "Password" deberia de teclearse "drowssaP" para que nos valide el usuario.

Ahora bien, como comprendereis esto no se puede quedar asi y decirle a la gente que escriba su password del reves. Alguien sabe como solucionarlo? A alguien le ha pasado?

Saludos y muchas gracias

mustang:
Te paso el código de como loggeo en mi dominio para ke lo chekes y ver si te sirve:
Primero ke nada haces un imports de:

--- Citar --- Imports System.DirectoryServices
--- Fin de la cita ---

--- Código: Text --- Dim username As String = tbUsuario.Text.Trim    'Textbox de usuarios        Dim pwd As String = tbPass.Text                'Textbox de password        Dim strPath As String = "LDAP://distribjal.cfemex.com/DC=distribjal, DC=com"      'Lo cambias por tu dominio        Dim strDomain As String = "distribjal"    'Nombre del dominio        Dim domainAndUsername As String = strDomain + "\" + username        Dim entry As DirectoryEntry = New DirectoryEntry(strPath, domainAndUsername, pwd)        Dim search As DirectorySearcher = New DirectorySearcher(entry)        Try            search.FindAll()    'Aki no se por ké pero siempre devuelve un error y si el error NO es inicio de sesión, significa ke si se loggeo       Catch ex As Exception            If Not ex.Message.ToString.Substring(0, 25) = "Error de inicio de sesión" Then                Response.Write("Encontrado y loggeado")            Else                Response.Write("NO Encontrado")            End If        End Try 
Espero te sirva, cualkier cosa, lo posteas

Mollense:
Yo lo tengo así:
En el "Web.config" tengo:

--- Código: Text ---<configuration>  <system.web>    <authentication mode="Forms">      <forms loginUrl="Publico/Acceso.aspx"/>    </authentication>    <authorization>      <deny users="?"/>    </authorization>  </system.web>  <location path="Publico">    <system.web>      <authorization>        <allow users="*"/>      </authorization>    </system.web>  </location>  <location path="Default.aspx">    <system.web>      <authorization>        <allow users="*"/>      </authorization>    </system.web>  </location></configuration> 
Y la estructura de mi página es:

--- Código: Text ---+Publico/    -(Páginas que no necesitan identificación de usuario para ser vistas)+Privado/    -(Páginas que sí necesitan identificación de usuario para ser vistas)+Default.aspx 
Veamos ahora el "Web.config" parte por parte:

--- Código: Text ---<system.web>    <authentication mode="Forms">      <forms loginUrl="Publico/Acceso.aspx"/>    </authentication>    <authorization>      <deny users="?"/>    </authorization>  </system.web> Acá, primero, defino cual es el formulario de inicio de sesión, segundo digo que por defecto, todas las páginas requieren autenticación.


--- Código: Text ---<location path="Publico">    <system.web>      <authorization>        <allow users="*"/>      </authorization>    </system.web>  </location>  <location path="Default.aspx">    <system.web>      <authorization>        <allow users="*"/>      </authorization>    </system.web>  </location> Acá defino dos excepciones a la restricción anterior y digo que dentro de la carpeta "Publico, todas las páginas están autorizadas para ser vistas, por lo que no necesitan autenticación.
Lo mismo hago para el archivo en particular "Default.aspx", por lo que tampoco requiere de un usuario autentificado para poder visualizarse.

En el formulario de acceso, en un botón tengo algo así:

--- Código: Text --- //Determinar permisos según el método que usesif (!permisoConcedido)        {            lbMensaje.Text = "El nombre de usuario ingresado no existe o la contraseña es inválida";        }        else        {            FormsAuthentication.RedirectFromLoginPage(strNombreDeUsuario, true);        } 
Espero que sirva de algo.

Respecto a lo del "campo del login"... ni idea. :ph34r:

Navegación

[0] Índice de Mensajes

Ir a la versión completa