كيف استرجع SID اهجاز على الشبكة
H1 class=title>Récupérer le SID et le domaine d'un utilisateur</H1>QUESTION : Comment puis-je récupérer le SID d'un utilisateur d'un domaine dans une application Visual Basic 6.0 ? <H2 class=subTitle id=tocHeadRef>Résolution</H2>loadTOCNode(1, 'resolution'); La fonction API LookupAccountName va permettre de récupérer le SID d'un compte utilisateur d'un domaine. Dans un formulaire (Form1) ajoutez : - un bouton de commande (Command1), - un Label (lblStatus), - deux TextBox (txtCompte et txtSID). Copiez le code suivant dans la partie code du formulaire : Option Explicit Private Declare Function LookupAccountName Lib "advapi32.dll" Alias "LookupAccountNameA" _ (ByVal lpSystemName As String, _ ByVal lpAccountName As String, _ SID As Byte, _ cbSid As Long, _ ByVal ReferencedDomainName As String, _ cbReferencedDomainName As Long, _ peUse As Integer) As Long Private Sub Command1_Click() Dim buffsize As Long Dim s As String * 255 Dim szDomain As Long ' Domaine de l'utilisateur Dim peUse As Integer Dim strSID As String ' Chaine du SID Dim i As Long ' Compteur buffsize = 0 szDomain = 255 Dim SID() As Byte 'SID Dim lReturn As Long Dim MyArraySize As Long MyArraySize = 100 ReDim SID(MyArraySize - 1) lblStatus.Caption = "Recherche d'informations sur l'utilisateur..." lReturn = LookupAccountName(vbNullString, _ txtCompte, SID(0), buffsize, s, szDomain, peUse) ' Affichage d'informations sur le retour de la DLL Debug.Print buffsize Debug.Print Err.LastDllError ' Si cela échoue If lReturn <> 0 Then MsgBox "Erreur lors de l'appel de la fonction." Exit Sub Else ' Sinon, Récupération d'informations sur le compte ReDim SID(buffsize - 1) ' on redimensionne le tableau lblStatus.Caption = "Recherche d'informations sur l'utilisateur et SID..." ' On appelle la fonction de nouveau lReturn = LookupAccountName(vbNullString, _ txtCompte, SID(0), buffsize, s, szDomain, peUse) Debug.Print Left(s, szDomain) ' Affchage du SID For i = 0 To UBound(SID) strSID = strSID + CStr(Hex$(SID(i))) Next i Debug.Print "SID :" Debug.Print strSID txtSID.Text = strSID txtDomaine.Text = s lblStatus.Caption = "Prêt." End If If lReturn <> 1 Then MsgBox "Error lors de l'appel de la fonction." End If End Sub Private Sub Form_Load() lblStatus.Caption = "Tapez le compte et appuyez sur <SID>" Command1.Caption = "SID" txtSID.Text = "Valeur du SID" End Sub Lancer le projet et saisir le nom d'un compte NT existant dans la zone de texte txtCompte, puis cliquer sur le bouton de commande "SID". La valeur du SID de ce compte NT est affiché dans la zone de texte txtSID