Benutzer-Werkzeuge

Webseiten-Werkzeuge


csharp:sidtostring

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

csharp:sidtostring [2016/04/02 00:48] (aktuell)
Zeile 1: Zeile 1:
 +====== objectSids in Strings umwandeln ======
  
 +<code csharp>
 +private string ConvertByteToStringSid(byte[] Sid)
 +        {
 +            string ReturnString = "​S-";​
 +            int CountSubProviders = Sid[1];
 +
 +            string Revision = Sid[0].ToString();​
 +            string IdentifierAuthority = ((long)(((long)Sid[2] << 40) + ((long)Sid[3] << 32) + ((long)Sid[4] << 24) + ((long)Sid[5] << 16) + ((long)Sid[6] << 8) + (long)Sid[7])).ToString();​
 +
 +            ReturnString += Revision + "​-"​ + IdentifierAuthority;​
 +            ulong b1, b2, b3, b4, bSum;
 +
 +            for (int i = 0; i < CountSubProviders;​ i++)
 +            {
 +                b1 = (ulong)Sid[8 + (4 * i)];
 +                b2 = (ulong)Sid[9 + (4 * i)] << 8;
 +                b3 = (ulong)Sid[10 + (4 * i)] << 16;
 +                b4 = (ulong)Sid[11 + (4 * i)] << 24;
 +                bSum = b1 + b2 + b3 + b4;
 +                ReturnString += "​-"​ + bSum.ToString();​
 +            }
 +
 +            return ReturnString;​
 +        }
 +</​code>​
 +
 +Wenn man in C# das AD-Attribut objectSID ausliest, erhält man lediglich einen byte-Array als Rückgabewert. Dies ist lediglich die interne Darstellung,​ die man mithilfe der oben angegebenen Funktion in das bekanntere String-Format ((Beispiel S-1-5-21-4536772-445536212-334526-977)) umwandeln kann. 
 +
 +Hintergrundinformationen zum Thema objectSid finden sich [[http://​www.selfadsi.de/​deep-inside/​microsoft-sid-attributes.htm|hier]].
 +
 +{{tag>​[CSharp objectSid AD]}}
csharp/sidtostring.txt · Zuletzt geändert: 2016/04/02 00:48 (Externe Bearbeitung)