Validar usuario no AD

Discussão em 'Progress 4GL' iniciado por Luciana, Abril 16, 2012.

  1. Luciana

    Luciana Sem Pontuação

    Pessoal, como eu faço para validar o usuário e senha no AD via progress ?
  2. LFBuozi

    LFBuozi Membro Participativo

    Veja se ajuda.
    É do KB P25103
    Código:
    DEFINE VARIABLE dDateInit AS DATE INITIAL "1/1/1601" NO-UNDO.
    DEFINE VARIABLE dLastLogon AS DECIMAL NO-UNDO.
    DEFINE VARIABLE dpwdLastSet AS DECIMAL NO-UNDO.
    DEFINE VARIABLE chConn AS COM-HANDLE NO-UNDO.
    DEFINE VARIABLE chRS AS COM-HANDLE NO-UNDO.
    DEFINE VARIABLE iRecordsAffected AS INTEGER NO-UNDO.
    DEFINE VARIABLE iOptions AS INTEGER NO-UNDO.
    DEFINE VARIABLE cQuery AS char NO-UNDO.
    
    /* Create the connection to the ADSI OLE DB provider */
    CREATE "ADODB.Connection" chConn NO-ERROR.
    chConn:Provider = "ADsDSOObject".
    chConn:OPEN = "ADSI Providers".
    
    /* Create recordset object to return data */
    CREATE "ADODB.Recordset" chRS NO-ERROR.
    
    /* Create and execute SQL statement */
    /* Change servername and username */
    cQuery = "SELECT name,lastLogon,pwdLastSet FROM 
    'LDAP://home.net/cn=users,dc=home,dc=net' WHERE objectClass='user' AND
    cn='Administrator'".
    chRS = chConn:EXECUTE(cQuery,OUTPUT iRecordsAffected,iOptions).
    
    DO WHILE NOT chRS:EOF:
    /* Calculate UTC value, Time Zone Bias in this example is 60 minutes
    (+1) */
    dLastLogon = TRUNCATE((((chRS:FIELDS("lastLogon"):VALUE:HighPart *
    EXP(2,32)) + 
    chRS:FIELDS("lastLogon"):VALUE:Lowpart) / 600000000 + 60) / 1440, 0).
    dpwdLastSet = TRUNCATE((((chRS:FIELDS("pwdLastSet"):VALUE:HighPart *
    EXP(2,32)) + 
    chRS:FIELDS("lastLogon"):VALUE:Lowpart) / 600000000 + 60) / 1440, 0).
    
    MESSAGE
    "Username: " chRS:FIELDS("name"):VALUE SKIP
    "Last Logon: " dDateinit + dLastLogon SKIP
    "Last Password Change: " dDateinit + dpwdLastSet
    /* Multivalued fields (description, memberOf, etc.) cannot be accessed
    */
    VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
    chRS:MoveNext.
    
    END.
    
    RELEASE OBJECT chRS.
    RELEASE OBJECT chConn.
    

Compartilhe esta Página