IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

SID d'un utilisateur


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Par défaut SID d'un utilisateur
    Bonjour,

    Suit à de nombreux posts sur ce site j'ai pu écrire une procédure permettant de récupérer le SID d'un utilisateur depuis Active Directory.
    Mon problème est le suivant :

    Au moment de l'exécution de mon formulaire il me dit :
    La conversion de la chaîne '5-1-1-1' en type 'long' n'est pas valide"
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Si quelqu'un peut m'aiguiller sur ce problème je l'en remercie d'avance.

  2. #2
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    bonjour gagaz21

    SID n'est pas un un entier , mais il peut être converte en string car il est sous forme de S..-..-..-..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PowerShell] Convertir un SID vers un nom d'utilisateur sur un ordinateur distant
    Par arnaudperfect dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 05/05/2015, 11h04
  2. Récupérer le SID d'un utilisateur
    Par bezourox dans le forum VBScript
    Réponses: 2
    Dernier message: 23/07/2010, 09h45
  3. Problème pour convertir un nom d'utilisateur en SID
    Par VincentSc dans le forum Windows
    Réponses: 2
    Dernier message: 13/05/2009, 15h09
  4. Sid utilisateurs windows
    Par duplo dans le forum Administration
    Réponses: 3
    Dernier message: 05/11/2005, 21h04
  5. [Kylix] Sauvegarde de donnée utilisateur....
    Par Eclypse dans le forum EDI
    Réponses: 1
    Dernier message: 11/05/2002, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo