```
// 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;
}
else if (Win32Native.GetLastError() ==Win32Native.ERROR_NONE_MAPPED) {
// SID hänvisar till en lokal användare eller grupp
domän.Append(".");
sidParsed =Win32Native.LookupAccountSid(null, sid, användarnamn, användarnamn.Capacity, domän, domän.Capacity, null);
if (!sidParsed) {
// Om LookupAccountSid misslyckas av någon anledning, returnera bara SID-strängen.
sidParsed =sant;
användarnamn.Längd =0;
}
}
if (sidParsed) {
returnera användarnamn.ToString();
}
annat {
returnera null;
}
}
catch (Undantag e) {
returnera null;
}
}
// Konvertera ett användar-/gruppnamn till en SID-sträng.
sträng ConvertStringToSid(strängnamn) {
prova {
var sid =ny byte[256];
var sidLength =sid.Length;
var domainName =new StringBuilder(256);
var sidParsed =false;
var result =Win32Native.LookupAccountName(null, namn, sid, ref sidLength, domännamn, domännamn.Capacity, null);
if (resultat &&sidLängd> 0) {
sidParsed =sant;
}
if (sidParsed) {
returnera ny SecurityIdentifier(sid, 0).Value;
}
annat {
returnera null;
}
}
catch (Undantag e) {
returnera null;
}
}
```