====== objectSids in Strings umwandeln ====== 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; } 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]}}