1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
Private Sub Bt_ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt_ok.Click
' Tableau d'octets qui va contenir le SID
Dim sidUser As Byte() = Nothing
Try
' Récupération du SID de l'objet souhaité
Dim Ldap As DirectoryEntry = New DirectoryEntry("LDAP://srv2003:389/CN=util1,OU=utilisateur,DC=test", "Administrateur@test", "admin")
sidUser = CType(Ldap.Properties("objectSid").Value, Byte())
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
'Formatage du SID en format connu
Dim nombreSubauthority As Short = 0
Dim monSid As StringBuilder = New StringBuilder
monSid.Append("S-")
Try
monSid.Append(sidUser(0).ToString)
nombreSubauthority = Convert.ToInt16(sidUser(1))
If Not (sidUser(2) = 0) OrElse Not (sidUser(3) = 0) Then
Dim strAuth As String = String.Format("0x{0:2x}{1:2x}{2:2x}{3:2x}{4:2x}{5:2x}", _
CType(sidUser(2), Int16), _
CType(sidUser(3), Int16), _
CType(sidUser(4), Int16), _
CType(sidUser(5), Int16), _
CType(sidUser(6), Int16), _
CType(sidUser(7), Int16))
monSid.Append("-")
monSid.Append(strAuth)
Else
Dim iVal As Int64 = CLng(CType((sidUser(7)), Int32) & _
CType((sidUser(6) < 8), Int32) & _
CType((sidUser(5) < 16), Int32) & _
CType((sidUser(4) < 24), Int32))
monSid.Append("-")
monSid.Append(iVal.ToString)
End If
Dim idxAuth As Integer = 0
Dim i As Integer = 0
While i < nombreSubauthority
idxAuth = 8 + i * 4
Dim iSubAuth As UInt32 = BitConverter.ToUInt32(sidUser, idxAuth)
monSid.Append("-")
monSid.Append(iSubAuth.ToString)
i += 1
End While
Catch ex As Exception
MsgBox(ex.Message)
End Try
MsgBox(monSid.ToString)
End Sub |
Partager