ASP.NET - Autenticacion con Active Directory

 
Vista:

Autenticacion con Active Directory

Publicado por Javier Santamaria (312 intervenciones) el 17/04/2008 15:16:38
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.

Alguien podria 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 alguna sugerencia.

Muchas gracias

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Autenticacion con Active Directory

Publicado por x (445 intervenciones) el 17/04/2008 15:25:09
No he leido el articulo (cosa de tiempo), pero "escribi" una libreria hace mas de un año y es la que utilizo para la autentificacion en AD, no se si sea lo que buscas, pero si te interesa pues con gusto te la paso.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Autenticacion con Active Directory

Publicado por x (445 intervenciones) el 17/04/2008 15:27:12
Me referia a pasarte el fuente, no la libreria xD
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Autenticacion con Active Directory

Publicado por Javier Santamaria (312 intervenciones) el 17/04/2008 15:36:47
Hola,

Muchas gracias por el ofrecimiento, pero el tema es que codigos ya hay por ahi para hacerlo mediante codigo, pero este articulo trata sobre enlazar un control login de ASP.NET directamente al Active Directory mediante la autenticacion por formularios y otros parametros.

La verdad que si funcionara seria muy util y totalmente transparente a la programacion. Echale un vistazo que te puede interesar, aparte de mi problema

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Autenticacion con Active Directory

Publicado por x (445 intervenciones) el 17/04/2008 15:42:17
Gracias, en eso estoy...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ASI ME FUNCIONA

Publicado por x (445 intervenciones) el 17/04/2008 15:50:57
<?xml version="1.0"?>

<configuration>

<appSettings/>
<connectionStrings>
<add name="ADConnectionString" connectionString="LDAP://[domain]" />
</connectionStrings>

<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="true" />
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="login.aspx"
defaultUrl="default.aspx" protection="All" timeout="30" path="/"
requireSSL="false" slidingExpiration="true"
cookieless="UseDeviceProfile" domain=""
enableCrossAppRedirects="false">
<credentials passwordFormat="SHA1" />
</forms>
</authentication>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
<membership defaultProvider="MyADMembershipProvider">
<providers>
<add
attributeMapUsername="sAMAccountName"
name="MyADMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString"
connectionUsername="[domain][username]"
connectionPassword="[password]"/>
</providers>
</membership>
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ASI ME FUNCIONA

Publicado por Javier Santamaria (312 intervenciones) el 17/04/2008 16:18:36
Hola,

Pues sigo igual. Te dejo lo mas relevante del web.config a ver si ves algo:

<connectionStrings>
<add name="ADConnectionString" connectionString="LDAP://icgdublin.net"/>
</connectionStrings>

Tambien he probado esta seccion asi:

<connectionStrings>
<add name="ADConnectionString" connectionString="LDAP://icgdublin.net/CN=Users,DC=icgdublin,DC=net>
</connectionStrings>


Ahora el membership y el authentication

<authentication mode="Forms">
<forms name=".ADAuthCookie" timeout="10"/>
</authentication>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>


<membership defaultProvider="MyADMembershipProvider">
<providers>
<add
name="MyADMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
attributeMapUsername="sAMAccountName"
connectionStringName="ADConnectionString"
connectionUsername="icgdublinusername"
connectionPassword="password"/>
</providers>
</membership>

El membership lo he probado con esta linea y sin ella:

attributeMapUsername="sAMAccountName"

En ambos casos utilizando tanto solo el nombre de usuario como el dominiousername

Me he saltado algo?

Saludos y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ASI ME FUNCIONA

Publicado por x (445 intervenciones) el 17/04/2008 16:25:27
Pero te marca un error? o solo te dice que no te pudiste loguear y que lo intentes de nuevo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ASI ME FUNCIONA

Publicado por Javier Santamaria (312 intervenciones) el 17/04/2008 16:30:27
Eso es, simplemente me dice:
Your login attempt was not successful. Please try again

Y punto pelota. He investigado creando un login y haciendolo template, de manera que al dar click al boton login le meto este codigo:

Try
'Dim strDominio As String = "LDAP://icgdublin.net/CN=Users,DC=icgdublin,DC=net"
Dim strDominio As String = "LDAP://dc=icgdublin,dc=net"
Dim objUser As DirectoryEntry
Dim objDirectoryEntry As New DirectoryEntry(strDominio, Me.Login2.UserName, Me.Login2.Password)
Dim objDirectorySearcher As New DirectorySearcher(objDirectoryEntry)
Dim objSearchResult As SearchResult
objDirectorySearcher.Filter = "(SAMAccountName=" & Me.Login2.UserName & ")"
objSearchResult = objDirectorySearcher.FindOne()
objUser = objSearchResult.GetDirectoryEntry()

Me.Login2.FailureText = "Usuario aceptado."

Catch ex As System.Exception
Me.Login2.FailureText = "Error: " & ex.Message
End Try

En este siempre me dice que el user no existe o que la contraseña esta mal. Por tanto me da que va a ser el tema de como coge los datos del dominio.

Mi dominio es "icgdublin.net" Creo que lo estoy especificando bien. No se que mas probar la verdad.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ASI ME FUNCIONA

Publicado por x (445 intervenciones) el 17/04/2008 16:37:02
Bueno, de entrada si tu dominio estuviese mal o la informacion del usuario, si no me equivoco deberia de mandarte a pantalla de error mmm... me parece extrano, pero bueno, en un rato continuo checando que de momento me voy a junta, suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ASI ME FUNCIONA

Publicado por x (445 intervenciones) el 17/04/2008 16:38:34
por el momento deja estos atributos:

attributeMapUsername="sAMAccountName"
connectionUsername="dominiousuario"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ASI ME FUNCIONA

Publicado por Javier Santamaria (312 intervenciones) el 18/04/2008 12:43:48
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ASI ME FUNCIONA

Publicado por x (445 intervenciones) el 18/04/2008 15:58:32
no me gusta como solucion pero...

public string Reverse(string str)
{
char[] charArray = str.ToCharArray();
int len = str.Length - 1;
for (int i = 0; i < len; i++, len--)
{
charArray[i] ^= charArray[len];
charArray[len] ^= charArray[i];
charArray[i] ^= charArray[len];
}
return new string(charArray);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ASI ME FUNCIONA

Publicado por Javier Santamaria (312 intervenciones) el 18/04/2008 16:05:28
Gracias por el consejo, pero queria decir si podria ser algun tipo de configuracion erronea. Evidentemente esa solucion que me propones seria la ultima. XDDDDD

Saludos y gracias de todos modos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ASI ME FUNCIONA

Publicado por x (445 intervenciones) el 18/04/2008 16:49:02
Tienes algun script que este trabajando con ese input?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ASI ME FUNCIONA

Publicado por Javier Santamaria (312 intervenciones) el 18/04/2008 16:51:31
No, he reiniciado el ordenador y parece que ya funciona bien. Voy a dejarlo hasta el lunes y lo pruebo de nuevo. Si m eda mas pegas os lo hago saber.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar