Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110

    [VB6,VBNET,Altro] Help esperti! Autenticazione user di windows

    Da codice VB o qualsiasi altro linguaggio, come faccio ad autenticare utenza e password?

    Riesco ad ottenere tutto sull'utenza con questo codice:

    Dim oUser As IADsUser 'Reference -> Active DS Type Library
    Set oUser = GetObject("WinNT://DOMINIOX/UTENTEX,user")

    Riesco ad accedere a molte info esempio:
    oUser.FullName

    Sono riuscito a cambiare la password all'account:
    oUser.ChangePassword OldPassword, NewOassword

    Ma come faccio a sapere se l'utente è quello che ha avuto l'accesso all'account di windows?

    PS Mi serve per evitare di inserire la gestione delle password nella mia piccola applicazione e sfruttare quella di windows.

    Grazie a chi si interesserà
    Ciao
    Ciao
    Marco

  2. #2
    per vb esiste un subforum dedicato ti sposto li
    specifica se vb6 o vb.net
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110
    Originariamente inviato da xegallo
    per vb esiste un subforum dedicato ti sposto li
    specifica se vb6 o vb.net
    Mi interessa sapere come fare, poi il linguaggio, se qualcuno l'ha fatto in C va bene uguale. Quello che mi interessa sapere ora è se si può fare.
    Per questo motivo preferivo stare in generale.
    Ciao
    Marco

  4. #4
    ormai l'hai cominciata in vb perciò scegli 6 o net sennò chiudo
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110
    Nessuno che sa aiutarmi?

    Ripongo la domanda:
    Avendo utenza e password di windows, come faccio a controllare che entrambi siano corretti?
    Ciao
    Marco

  6. #6
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    Originariamente inviato da marcomd
    Nessuno che sa aiutarmi?

    Ripongo la domanda:
    Avendo utenza e password di windows, come faccio a controllare che entrambi siano corretti?
    intanto inizia a rispondere alla domanda di xegallo..
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110
    Mi pare di aver già aggiornato il primo post, comunque ho risolto e posto la soluzione in codice VB6 che può essere convertito facilmente per asp.
    Sto facendo ancora delle prove perchè mi è capitato di bloccare un utenza. Lo stesso codice può essere utilizzato per operare da amministratore sulle utenze per far ciò bisogna creare il contenitore come amministratore e l'oggetto user con l'utenza da modificare, bisognerebbe quindi aggiungere un parametro nella funzione.

    La funzione è pronta per funzionare già con i msg di errori all'interno. Se si adotta il resume next si possono eliminare e si gestiscono all'esterno, spero che possa essere utile a qualcun'altro:

    codice:
    'Specificare il dominio a cui appartiene l'utenza (se è in locale solitamente è il nome del computer)
    Private Function AuthWinUser(ByVal pDomain As String, ByVal pUser As String, ByVal pPassword As String, ByRef outError As String) As Boolean
        On Error GoTo Err_AuthWinUser
        
        Dim objIADS             As IADs
        Dim objIADSuser         As IADsUser
        
        'Resume Next
        'Creo il container
        Const ADS_SECURE_AUTHENTICATION = 1
        Set objIADS = GetObject("WinNT:").OpenDSObject("WinNT://" & _
                                pDomain, pUser, _
                                pPassword, _
                                ADS_SECURE_AUTHENTICATION)
        
        'Se non si usa il resume next a questo punto si ha già un esito positivo.
        If IsNull(objIADS) Then
            GoTo Fine_AuthWinUser
        Else
            'Ottengo le informazioni sull'utente
            Set objIADSuser = objIADS.GetObject("user", pUser)
            If objIADSuser.IsAccountLocked Or objIADSuser.AccountDisabled Then
                AuthWinUser = False
            Else
                AuthWinUser = True
            End If
        End If
        
        Set objIADSuser = Nothing
        Set objIADS = Nothing
    
    
    
    Fine_AuthWinUser:
        If Err.Number > 0 Then
            outError = Err.Description
        End If
        Exit Function
        
    Err_AuthWinUser:
        Select Case Err.Number
        Case Is < 0
            MsgBox "ATTENZIONE - Non siete stati riconosciuti, si consiglia di riprovare facendo attenzione alle minuscole/maiuscole." & vbCrLf & "Se il problema persiste potrebbe trattarsi di un errore nell'autenticazione, 
    in questo caso contattare il CED." & vbCrLf & vbCrLf & " Descrizione tecnica:  " & Err.Number & " " & Err.Description, vbExclamation, " Attenzione! "
            GoTo Fine_AuthWinUser
        Case Else
            MsgBox "Function AuthWinUser - Errore N°:  " & Err.Number & "  - Descrizione:  " & Err.Description, vbExclamation, " Attenzione! "
            GoTo Fine_AuthWinUser
        End Select
        Resume
    End Function
    Ciao
    Marco

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    134
    Questa tua funzione serve per verificare se l' utente e' esistente o anche per autenticarti in rete?
    Nel senso, se io sul server ho una cartella immagini a cui solo l' utente "pinco" può accedere posso, dal client, anche se sono utente "pallino" accedere come utente "pinco" e avere così accesso alla cartella?

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110
    Originariamente inviato da arcadia
    Questa tua funzione serve per verificare se l' utente e' esistente o anche per autenticarti in rete?
    Nel senso, se io sul server ho una cartella immagini a cui solo l' utente "pinco" può accedere posso, dal client, anche se sono utente "pallino" accedere come utente "pinco" e avere così accesso alla cartella?
    Non lo so, io non avevo questa esigenza, dovresti provare ma presumo di si, penso sia possibile interagire con le nuove credenziali, appena ho tempo provo.
    Ciao
    Marco

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110
    A distanza di settimane torno sul problema: nel modo che ho scritto non sempre funzionava, a volte si accedeva anche con passwords sbagliate, ho risolto utilizzando il protocollo LDAP anzichè il WinNT, questo è il codice:

    codice:
    'Spuntare la reference a: Active DS Type Library
    'Specificare il dominio a cui appartiene l'utenza (se è in locale solitamente è il nome del computer)
    Private Function AuthWinUser2(ByVal pDomain As String, ByVal pUser As String, ByVal pPassword As String, ByRef outError As String) As Boolean
        On Error GoTo Err_AuthWinUser2
        
        Dim dso         As IADsOpenDSObject
        Dim domain      As IADs
        
        'Resume Next
        'Creo il container
        Const ADS_SECURE_AUTHENTICATION = 1
        Set dso = GetObject("LDAP:")
        Set domain = dso.OpenDSObject("LDAP://" & pDomain, pUser, pPassword, ADS_SECURE_AUTHENTICATION)
        
        AuthWinUser2 = True
        
    
    
    Fine_AuthWinUser2:
        Set dso = Nothing
        Set domain = Nothing
    
        If Err.Number > 0 Then
            outError = Err.Description
        End If
        Exit Function
        
    Err_AuthWinUser2:
        Select Case Err.Number
        Case -2147023570
            MsgBox "Utenza sconosciuta o password di dominio non corretta", vbExclamation, "Login fallito"
            GoTo Fine_AuthWinUser2
        Case -2147467259
            MsgBox "Dominio sconosciuto!" & vbCrLf & vbCrLf & " Descrizione tecnica:  " & Err.Number & " " & Err.Description, vbExclamation, "Login fallito"
            GoTo Fine_AuthWinUser2
        Case Is < 0
            MsgBox "ATTENZIONE - Non siete stati riconosciuti" & vbCrLf & vbCrLf & " Descrizione tecnica:  " & Err.Number & " " & Err.Description, vbExclamation, " Attenzione! "
            GoTo Fine_AuthWinUser2
        Case Else
            MsgBox "Function AuthWinUser2 - Errore N°:  " & Err.Number & "  - Descrizione:  " & Err.Description, vbExclamation, " Attenzione! "
            GoTo Fine_AuthWinUser2
        End Select
        Resume
    End Function
    PERO! Porca pupazza funziona solo su windows 2000! Su Windows NT no!
    Ho letto dal sito microsoft che in NT mancava l'adsi percui l'ho scaricato ed installato ma non cambia nulla, ho controllato i servizi di NT ma non capisco se ne manca qualcuno indispensabile... non so più cos'altro provare

    edit: l'oggetto domain è un IADS non un IADSdomain, così infatti da un type mismatch, stavo facendo delle prove.
    Ciao
    Marco

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.