Benutzer-Werkzeuge

Webseiten-Werkzeuge


csharp:sidtostring
no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


Vorhergehende Überarbeitung
csharp:sidtostring [2016/04/02 00:48] (aktuell) – Externe Bearbeitung 127.0.0.1
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 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki