Affichage code binaire

Résolu
Francks11 Messages postés 71 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 13 décembre 2008 - 29 oct. 2007 à 15:51
Francks11 Messages postés 71 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 13 décembre 2008 - 30 oct. 2007 à 13:15
Bonjour,


Voila mon problème :


Dans l'active directory, j'aimerai récuperer le objectSid qui est un attribut binaire.
Le contenu du champ est de cette forme : 01  06  00  00  00  00  00  05  14  00  00  00  73  4C  0E  08


Donc je recupere l'information objectSid comme ceci.


DirEntry.Properties["objectSid"].Value;


Le problème est le fait, que lorsque je l'affichage, il m'affiche System.byte[].


Moi j'aimerai pouvoir récuperer le même code hexadecimal qu'au dessus, comment faire?


merci

6 réponses

cs_niky Messages postés 168 Date d'inscription jeudi 28 juin 2001 Statut Membre Dernière intervention 18 octobre 2008 7
29 oct. 2007 à 19:10
Salut,
Essayes ça :

string hexa = string.Empty;
foreach (byte b in DirEntry.Properties["objectSid"].Value) // Parcours du tableau de byte
{
    // Convertit le byte en une chaîne en base 16.
    if (hexa.Length > 0)
        hexa += " " + Convert.ToString(b, 16);
    else

        hexa = Convert.ToString(b, 16);
}
// Affichage du résultat
Console.WriteLine(hexa);

Cordialement.
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
30 oct. 2007 à 09:51
en plus propre :

StringBuilder sb = new StringBuilder();
Array.ForEach( DirEntry.Properties["objectSid"].Value,
   delegate( byte b ) {
      sb.AppendFormat(" {0:00}");
   }
);

sb.ToString() donnera (normalement) "01  06  00  00  00  00  00  05  14  00  00  00  73  4C  0E  08"

je n'ai pas testé

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
30 oct. 2007 à 10:05
Hello,

J'allais justement mettre une petite remarque à ce sujet, mais sebmafate m'a devancé.

Par contre, pour que ça fonctionne :

sb.AppendFormat(" {0:X2}",b);

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
30 oct. 2007 à 10:11
oops... une erreur en effet...
mais plutot : sb.AppendFormat(" {0:00}",b);

car sinon, la chaine sera 0X01 0X06...

Merci pour la correction

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
30 oct. 2007 à 11:23
Par contre, je maintiens mon X2, si on veux afficher 0E et non 14...

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
0
Francks11 Messages postés 71 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 13 décembre 2008
30 oct. 2007 à 13:15
Ok merci, je me suis aidé de la première réponse.
0
Rejoignez-nous