```
// Konverter en SID-streng til et bruker-/gruppenavn.
string ConvertSidToString(string sid) {
prøv {
var domene =new StringBuilder(256);
var brukernavn =new StringBuilder(256);
var sidParsed =falsk;
var resultat =Win32Native.LookupAccountSid(null, sid, brukernavn, brukernavn.Capacity);
if (resultat &&brukernavn.Lengde> 0) {
sidParsed =sant;
}
else if (Win32Native.GetLastError() ==Win32Native.ERROR_NONE_MAPPED) {
// SID refererer til en lokal bruker eller gruppe
domene.Append(".");
sidParsed =Win32Native.LookupAccountSid(null, sid, brukernavn, brukernavn.Capacity, domene, domain.Capacity, null);
if (!sidParsed) {
// I tilfelle LookupAccountSid mislykkes av en eller annen grunn, bare returner SID-strengen.
sidParsed =sant;
brukernavn.Lengde =0;
}
}
if (sidParsed) {
returner brukernavn.ToString();
}
annet {
returner null;
}
}
catch (unntak e) {
returner null;
}
}
// Konverter et bruker-/gruppenavn til en SID-streng.
streng ConvertStringToSid(strengnavn) {
prøv {
var sid =ny byte[256];
var sidLength =sid.Length;
var domenenavn =new StringBuilder(256);
var sidParsed =falsk;
var resultat =Win32Native.LookupAccountName(null, navn, sid, ref sidLength, domenenavn, domenenavn.Capacity, null);
if (resultat &&sidLength> 0) {
sidParsed =sant;
}
if (sidParsed) {
returner ny SecurityIdentifier(sid, 0). Verdi;
}
annet {
returner null;
}
}
catch (unntak e) {
returner null;
}
}
```