```
// Converteer een SID-tekenreeks naar een gebruikers-/groepsnaam.
string ConvertSidToString(tekenreeks zijde) {
poging {
var domein =nieuwe StringBuilder(256);
var gebruikersnaam =new StringBuilder(256);
var sidParsed =false;
var resultaat =Win32Native.LookupAccountSid (null, sid, gebruikersnaam, gebruikersnaam. Capaciteit);
if (resultaat &&gebruikersnaam. Lengte> 0) {
sidParsed =waar;
}
anders {
resultaat =Win32Native.LookupAccountSid (null, sid, domein, domein. Capaciteit, gebruikersnaam, gebruikersnaam. Capaciteit);
if (resultaat &&gebruikersnaam.Lengte> 0 &&domein.Lengte> 0) {
sidParsed =waar;
gebruikersnaam.Append('\\').Append(domein);
}
}
als (sidParsed) {
retourneer gebruikersnaam.ToString();
}
anders {
retourneer nul;
}
}
vangst {
retourneer nul;
}
}
// Converteer een gebruikers-/groepsnaam naar een SID-reeks.
string ConvertStringToSid(tekenreeksnaam) {
poging {
// Wijs een buffer toe om de SID te ontvangen. De maximale lengte is:256 bytes voor de SID
// zelf, plus 1 byte voor het null-teken.
var sid =nieuwe byte[257];
// Wijs buffers toe om de gebruikers- en domeinnamen te ontvangen. De maximale lengte is:
// Gebruiker:20 tekens
// Domein:80 tekens
var gebruiker =nieuwe StringBuilder(20);
var domein =nieuwe StringBuilder(80);
// Stel het domein en de SID-aanwijzer in op nul om de huidige computer te gebruiken.
uint-grootte =257;
var geslaagd =Win32Native.LookupAccountName (null, naam, sid, ref-grootte, gebruiker, gebruiker. Capaciteit, domein, domein. Capaciteit);
als (geslaagd) {
// Converteer de SID naar een tekenreeks voor weergave.
retourneer nieuwe System.Security.Principal.SecurityIdentifier(sid, 0).Value;
}
anders {
retourneer nul;
}
}
vangst {
retourneer nul;
}
}
``` |