![]() |
| |||||||
| Registrarse | Preguntas Frecuentes | Lista de Foreros | Calendario | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
| | LinkBack | Herramientas | Desplegado |
| |||
| Hola, Esta funcion yo la tengo en mi aplicacion, ya y me funciona bien, pero tengo 2 incognitas al respecto que no he podido solucionar. 1) cuando estoy trabajando en la aplicacion desde el IDE de VS2005 y ejecuto desde el entorno de desarrollo, me funciona bine, es decir me valida que si sea un usuario del dominio, e ingresa sin problemas, pero al publicar el sitio e instalarlo en IIS, ejecuto, y cuando me voy a logear el me dice " The specified domain either does not exist or could not be contacted" 2) quisiera poder listar en un formulario los usuarios del dominio, esto con el fin de crear los permisos de acceso a mi aplicacion de ellos mismos, para no crear uno a uno los usuarios. Gracias. |
| | ||||
| ||||
| |
| |||
| :-) Hola, Si te pasé la función fue para que te familiarizaces con los objetos "DirectoryEntry" y "DirectorySearcher". Bueno, vamos por partes: 1) ¿La estación de producción pertenece al dominio? ¿Has verificado bajo que permisos se ejecuta la aplicación (si es el usuario aspnet tal vez no tenga los permisos apropiados)? 2) Respecto a listar los usuarios, prueba con: Dim entry As DirectoryEntry = New DirectoryEntry("TU.DOMINIO.COM") Dim search As DirectorySearcher = New DirectorySearcher(entry) Dim adSID() As Byte Dim adGuid As Guid Dim adcn As String = "" Dim adsamAccountName As String = "" Dim admail As String = "" search.Filter = "(objectCategory=person)" search.PropertiesToLoad.Add("cn") search.PropertiesToLoad.Add("objectGUID") search.PropertiesToLoad.Add("objectSID") search.PropertiesToLoad.Add("samAccountName") search.PropertiesToLoad.Add("mail") Dim results As SearchResultCollection = search.FindAll() For Each r As SearchResult In results adSID = CType(r.Properties("objectSID")(0), Byte()) adGuid = New Guid(CType(r.Properties("objectGUID")(0), Byte())) adcn = CType(r.Properties("cn")(0), String) adsamAccountName = CType(r.Properties("samAccountName")(0), String) If r.Properties("mail").Count > 0 Then admail = CType(r.Properties("mail")(0), String) 'users.Add(New ADUser(adSID, adGuid, adcn, adsamAccountName, admail)) Next Saludos, -- Lluís Franco i Montanyés [MS-MVP-MCP Visual Basic] -- Web: http://sps.uyssoft.com Blog: http://msmvps.com/blogs/lfranco Geeks: http://geeks.ms/blogs/lfranco -- (Guía de netiquette de los foros) http://sps.uyssoft.com/Foros%20online/Netiquette.aspx FIMARGE, S.A. Principat d'Andorra lfranco***ODIO_EL_SPAMfimarge.ad Tel.: +376 805 100 Fax: +376 824 500 -- Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis -- This posting is provided "AS IS" with no warranties, and confers no rights. Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun derecho. |
| |||
| Hola Luis, De antemano te doy las gracias por la colaboracion. El punto por el que te escribo es el siguiente. 1) cuando me preguntas bajo que permisos se ejecuta la aplicacion, la verdad no entendi muy bien, yo se que la carpeta de la aplicacion web tiene unos usuarios con unos permisos, y pues no se si te refieres a esto. 2) el procedimiento para la busqueda de usuarios lo tengo en mi aplicacion a modo de prueba asi: Public Sub ConsultarUsuarios(ByVal _Dominio As String, ByVal _DdlMail As DropDownList) 'Try Dim entry As DirectoryEntry = New DirectoryEntry(_Dominio) Dim search As DirectorySearcher = New DirectorySearcher(entry) Dim user As DirectoryVirtualListView Dim adSID() As Byte Dim adGuid As Guid Dim adcn As String = "" Dim adsamAccountName As String = "" Dim admail As String = "" search.Filter = "(objectCategory=person)" search.PropertiesToLoad.Add("cn") search.PropertiesToLoad.Add("objectGUID") search.PropertiesToLoad.Add("objectSID") search.PropertiesToLoad.Add("samAccountName") search.PropertiesToLoad.Add("mail") Dim results As SearchResultCollection = search.FindAll() For Each r As SearchResult In results adSID = CType(r.Properties("objectSID")(0), Byte()) adGuid = New Guid(CType(r.Properties("objectGUID")(0), Byte())) adcn = CType(r.Properties("cn")(0), String) adsamAccountName = CType(r.Properties("samAccountName")(0), String) If r.Properties("mail").Count > 0 Then admail = CType(r.Properties("mail")(0), String) 'user.(New ADUser(adSID, adGuid, adcn, adsamAccountName, admail)) _DdlMail.Items.Add(admail) Next 'Catch ex As Exception ' Throw New Exception(ex.Message & " " & MsgSearchUser) 'End Try End Sub __________________________________________________ _______________________________ pero al momento de ejecutarse me saca un error "Error desconocido" en la linea Dim results As SearchResultCollection = search.FindAll() De nuevo gracias. |
| |||
| Hola, el problema 1 fue resuelto, la solucion fue: 1) a la hora de publicar e instalar su sitio asegurense que tienen esta directiva <identity impersonate="true"/> 2) en el IIS en la directiva de seguridad se debe colocar un usuario del dominio, 3) en el IIS, en la parte para asistentes de permisos, crear un permiso, que herede la configuracion de seguridad. 4) en la carpeta de la aplicacion verificar que el user ASP y el IUSR esten con todos los permisos, de esta manera me funciono. Ahora si continuo con el 2 Saludos, |
| |||
| :-))) Hola, Perfecto! A eso me refería, porque tenia toda la pinta de que el usuario que ejecutaba la aplicación no tenia permisos de acceso al AD. Usar impersonalización es muy práctico es estos casos, ya que permite realizar la autenticación mediante el usuario definido en el IIS. Respecto al problema con listar los uaurios, vamos a reducir problemas, prueba primero con: Dim entry As DirectoryEntry = New DirectoryEntry("TU.DOMINIO.COM") Dim search As DirectorySearcher = New DirectorySearcher(entry) Dim results As SearchResultCollection = search.FindAll() Y comprobemos que se ejecuta correctamente (aunque no devuelva lo que deseamos). -- Lluís Franco i Montanyés [MS-MVP-MCP Visual Basic] -- Web: http://sps.uyssoft.com Blog: http://msmvps.com/blogs/lfranco Geeks: http://geeks.ms/blogs/lfranco -- (Guía de netiquette de los foros) http://sps.uyssoft.com/Foros%20online/Netiquette.aspx FIMARGE, S.A. Principat d'Andorra lfranco***ODIO_EL_SPAMfimarge.ad Tel.: +376 805 100 Fax: +376 824 500 -- Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis -- This posting is provided "AS IS" with no warranties, and confers no rights. Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun derecho. |
| |||
| Luis vuelvo a la tristeza un poco, ya que las pruebas que hice para que me validara en el AD, las hice en Windows XpPRo, pero haciendo lo mismo en Win2003 no resulto con el cliente, estare haciendo las pruebas y les estare contando que hay que hacer, Bueno con respecto a lo de listar los usuarios, me saca error en la misma linea osea en esta " Dim results As SearchResultCollection = search.FindAll()" que hacemos ? el error es el mismo "Error desconocido" |
| |||
| :-S Caramba... Pues yo estas aplicaciones las tengo ejecutándose en WinXP y en Win2003, aunque es posible que tuviese que modificar algo de la configuración de seguridad... ahora no me acuerdo. Deja que te lo mire, ok? PD - Voy a estar fuera de la oficina hasta el lunes, así que tardaré un poco... Saludos, -- Lluís Franco i Montanyés [MS-MVP-MCP Visual Basic] -- Web: http://sps.uyssoft.com Blog: http://msmvps.com/blogs/lfranco Geeks: http://geeks.ms/blogs/lfranco -- (Guía de netiquette de los foros) http://sps.uyssoft.com/Foros%20online/Netiquette.aspx FIMARGE, S.A. Principat d'Andorra lfranco***ODIO_EL_SPAMfimarge.ad Tel.: +376 805 100 Fax: +376 824 500 -- Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis -- This posting is provided "AS IS" with no warranties, and confers no rights. Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun derecho. |
| |||
| :-( Pues no... ¿Has probado a crear una pequeña aplicación Windows que acceda el AD? Sólo para comprobar que funcione ok... -- Lluís Franco i Montanyés [MS-MVP-MCP Visual Basic] -- Web: http://sps.uyssoft.com Blog: http://msmvps.com/blogs/lfranco Geeks: http://geeks.ms/blogs/lfranco -- (Guía de netiquette de los foros) http://sps.uyssoft.com/Foros%20online/Netiquette.aspx FIMARGE, S.A. Principat d'Andorra lfranco***ODIO_EL_SPAMfimarge.ad Tel.: +376 805 100 Fax: +376 824 500 -- Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis -- This posting is provided "AS IS" with no warranties, and confers no rights. Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun derecho. |
| |||
| ya mi aplicacion esta terminada en un 95 % me queda faltando, la autenticacion del directorio activo de de la aplicacion instalada en un servidor windows 2003 server, esta aplicacion fue hecha en asp.net, y el error que me sale es referente a que no tengo permisos para autenticarme, le he dado permisos totales con usuarios, como ASP.NET , IUSR, Administrador de la maquina local y ni asi fuciona, recuerdo todo esto por si ayuda a resolver el problema, gracias. |
| |||
| Bueno al fin pude solucionar mis 2 problemas, tras de cacharrear bastante y pues investigar. 1) solucion con respecto a la autenticacion: todo giro en entorno a permisos de usuarios para ingresar a la aplicacion, en el IIS se deben dar permisos suficientes para poder realizar esta operacion. 2) necesita listar los datos de un usuario en especifico del directorio activo, ademas de cargarlos todos claro esta: este es el codigo para Cargar los datos de un usuario Especifico del directorio activo ================================================== ====== Public Sub DatosUsuariosAD(ByVal Domain As String, ByVal _User As String, ByVal TxtNoms As TextBox, ByVal TxtCorreo As TextBox, ByVal txtUser As TextBox) Try Dim sr As SearchResultCollection Dim srProp As SearchResult Dim _SamAccount As String Dim _Noms As String Dim _Correo As String Dim DirSearch As New DirectorySearcher(Domain) DirSearch.SearchScope = DirectoryServices.SearchScope.Subtree DirSearch.PropertiesToLoad.Add("name") DirSearch.PropertiesToLoad.Add("samAccountName") DirSearch.PropertiesToLoad.Add("mail") DirSearch.Filter = "samAccountName=" + _User sr = DirSearch.FindAll For i As Long = 0 To sr.Count - 1 srProp = sr(i) _Noms = srProp.Properties("name")(0).ToString() _Correo = srProp.Properties("mail")(0).ToString() _SamAccount = srProp.Properties("samAccountName")(0).ToString() TxtNoms.Text = _Noms.ToString TxtCorreo.Text = _Correo.ToString txtUser.Text = _SamAccount.ToString Next Catch ex As Exception Throw New Exception(ex.Message & " " & MsgSearchUser) End Try End Sub ================================================== ====== y este es el codigo para listarlos todos los usuarios del directorio: ================================================== ====== Public Sub ConsultarUsuarios(ByVal Domain As String, ByVal ddlreporter As DropDownList) Try Dim DirSearch As New DirectorySearcher(Domain) '"name=" + _User DirSearch.SearchScope = DirectoryServices.SearchScope.Subtree DirSearch.PropertiesToLoad.Add("name") DirSearch.PropertiesToLoad.Add("samAccountName") DirSearch.PropertiesToLoad.Add("mail") DirSearch.Filter = "(objectCategory=person)" Dim sr As SearchResultCollection Dim srProp As SearchResult sr = DirSearch.FindAll For i As Long = 0 To sr.Count - 1 srProp = sr(i) ddlreporter.Items.Add(srProp.Properties("samAccoun tName")(0).ToString()) Next Catch ex As Exception Throw New Exception(ex.Message & " " & MsgSearchUser) End Try End Sub ================================================== ====== Espero que esto pueda servirle a alguien. Saludos, y Gracias a Luis y Guille. |
| |
| |
![]() |
| Herramientas | |
| Desplegado | |
| |
Temas Similares | ||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Listar archivos de un directorio | pol | Newsgroup microsoft.public.es.dotnet.vb | 6 | 25-08-2008 17:32:47 |
| Problema con cambio de clave para usuarios del Directorio Activo | Admin | Newsgroup microsoft.public.es.windows.server.directorio_activo | 0 | 04-08-2008 11:19:00 |
| Web part para crear usuarios en Directorio Activo | Fernanda Quintana | Newsgroup microsoft.public.es.sharepoint | 3 | 21-02-2008 15:18:00 |
| Listar usuarios Directorio Activo | Iñigo | Newsgroup microsoft.public.es.sharepoint | 1 | 20-07-2007 21:46:01 |
| Listar un contenido en un directorio | jacgandres | Newsgroup microsoft.public.es.java | 0 | 04-04-2006 17:11:02 |