csharp:sidtostring
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 1) umwandeln kann.
Hintergrundinformationen zum Thema objectSid finden sich hier.
1)
Beispiel S-1-5-21-4536772-445536212-334526-977
csharp/sidtostring.txt · Zuletzt geändert: 2016/04/02 00:48 von 127.0.0.1