„
// Konvertieren Sie eine SID-Zeichenfolge in einen Benutzer-/Gruppennamen.
string ConvertSidToString(string sid) {
versuchen {
var domain =new StringBuilder(256);
var Benutzername =neuer StringBuilder(256);
var sidParsed =false;
var result =Win32Native.LookupAccountSid(null, sid, username, username.Capacity);
if (Ergebnis &&Benutzername.Länge> 0) {
sidParsed =true;
}
anders {
result =Win32Native.LookupAccountSid(null, sid, domain, domain.Capacity, username, username.Capacity);
if (Ergebnis &&Benutzername.Länge> 0 &&Domain.Länge> 0) {
sidParsed =true;
Benutzername.Append('\\').Append(domain);
}
}
if (sidParsed) {
return Benutzername.ToString();
}
anders {
null zurückgeben;
}
}
fangen {
null zurückgeben;
}
}
// Konvertieren Sie einen Benutzer-/Gruppennamen in eine SID-Zeichenfolge.
string ConvertStringToSid(string name) {
versuchen {
// Einen Puffer für den Empfang der SID zuweisen. Die maximale Länge beträgt:256 Bytes für die SID
// selbst, plus 1 Byte für das Nullzeichen.
var sid =neues Byte[257];
// Puffer für den Empfang der Benutzer- und Domänennamen zuweisen. Die maximale Länge beträgt:
// Benutzer:20 Zeichen
// Domäne:80 Zeichen
var user =new StringBuilder(20);
var domain =new StringBuilder(80);
// Setzen Sie den Domänen- und SID-Zeiger auf Null, um den aktuellen Computer zu verwenden.
uint-Größe =257;
var erfolgreich =Win32Native.LookupAccountName(null, name, sid, ref size, user, user.Capacity, domain, domain.Capacity);
if (erfolgreich) {
// Konvertieren Sie die SID zur Anzeige in einen String.
return new System.Security.Principal.SecurityIdentifier(sid, 0).Value;
}
anders {
null zurückgeben;
}
}
fangen {
null zurückgeben;
}
}
„