```
// Konvertera en SID-sträng till ett användar-/gruppnamn.
string ConvertSidToString(string sid) {
prova {
var domain =new StringBuilder(256);
var användarnamn =new StringBuilder(256);
var sidParsed =false;
var result =Win32Native.LookupAccountSid(null, sid, användarnamn, användarnamn.Capacity);
if (resultat &&användarnamn.Längd> 0) {
sidParsed =sant;
}
annat {
resultat =Win32Native.LookupAccountSid(null, sid, domän, domän.Capacity, användarnamn, användarnamn.Capacity);
if (resultat &&användarnamn.Längd> 0 &&domän.Längd> 0) {
sidParsed =sant;
användarnamn.Append('\\').Append(domän);
}
}
if (sidParsed) {
returnera användarnamn.ToString();
}
annat {
returnera null;
}
}
fånga {
returnera null;
}
}
// Konvertera ett användar-/gruppnamn till en SID-sträng.
sträng ConvertStringToSid(strängnamn) {
prova {
// Tilldela en buffert för att ta emot SID. Maximal längd är:256 byte för SID
// sig själv, plus 1 byte för nolltecknet.
var sid =ny byte[257];
// Tilldela buffertar för att ta emot användar- och domännamn. Maxlängden är:
// Användare:20 tecken
// Domän:80 tecken
var user =new StringBuilder(20);
var domain =new StringBuilder(80);
// Ställ in domänen och SID-pekaren på null för att använda den aktuella datorn.
enhetsstorlek =257;
var succeeded =Win32Native.LookupAccountName(null, namn, sid, ref storlek, användare, användare.Capacity, domän, domän.Capacity);
if (lyckades) {
// Konvertera SID till en sträng för visning.
returnera nytt System.Security.Principal.SecurityIdentifier(sid, 0).Value;
}
annat {
returnera null;
}
}
fånga {
returnera null;
}
}
```