Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Averiguar login y grupo de usuario en un directorio activo

Estas en el tema de Averiguar login y grupo de usuario en un directorio activo en el foro de Visual Basic clásico en Foros del Web. Hola Debo realizar una aplicación en vb para extraer determinados informes de una base de datos sql server sobre un directorio activo. Esos datos no ...
  #1 (permalink)  
Antiguo 20/04/2006, 00:52
 
Fecha de Ingreso: agosto-2003
Mensajes: 174
Antigüedad: 20 años, 8 meses
Puntos: 3
Averiguar login y grupo de usuario en un directorio activo

Hola
Debo realizar una aplicación en vb para extraer determinados informes de una base de datos sql server sobre un directorio activo.

Esos datos no deben estar a disposición de cualquiera por lo que la aplicación debe conocer el nombre de login del usuario y el grupo al que pertenece (si es un usuario o un admin o que) a fin de permitir o no obtener la información.

Es decir un comercial tiene derecho a sacar algunos informes, en el almacén se pueden sacar otros, un admin tiene derecho a sacarlos todos, etc

Entiendo que debo utilizar apis, pero no encuentro un sitio donde vengan debidamente explicadas para encontrar la que necesito, que parámetros necesita y como devuelve la información solicitada.

Las estaciones (como los servidores funcionan sobre win2k).

Una ayudita por favor
  #2 (permalink)  
Antiguo 20/04/2006, 04:59
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Hola

Eso es, tienes que utilizar la API GetUserName

Puedes declararla en un modulo
Código:
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Luego creas una función que devuelva el nombre de usuario

Código:
Public Function UsuarioActual() As String
    'Esta función devuelve el nombre del Usuario
    Dim sBuffer As String
    Dim lSize As Long
    Dim sUsuario As String

    sBuffer = Space$(260)
    lSize = Len(sBuffer)
    Call GetUserName(sBuffer, lSize)
    If lSize > 0 Then
        sUsuario = Left$(sBuffer, lSize)
        'Quitarle el CHR$(0) del final...
        lSize = InStr(sUsuario, Chr$(0))
        If lSize Then
            sUsuario = Left$(sUsuario, lSize - 1)
        End If
    Else
        sUsuario = ""
    End If
    UsuarioActual = sUsuario
End Function
Lo de conseguir el grupo al que pertene, no tengo ni idea de si existe alguna API que lo haga, pero de todas formas teniendo el usuario y sabiendo el grupo al que pertenece te puedes crear una select case.

--Saludos--
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:11.