// Converte una stringa SID in un nome utente/gruppo.
string ConvertSidToString(string sid) {
Tentativo {
var dominio =new StringBuilder(256);
var nomeutente =new StringBuilder(256);
var sidParsed =false;
var risultato =Win32Native.LookupAccountSid(null, sid, nomeutente, nomeutente.Capacità);
if (risultato &&nomeutente.Lunghezza> 0) {
sidParsed =vero;
}
altro {
risultato =Win32Native.LookupAccountSid(null, sid, dominio, dominio.Capacità, nome utente, nome utente.Capacità);
if (risultato &&nomeutente.Lunghezza> 0 &&dominio.Lunghezza> 0) {
sidParsed =vero;
nomeutente.Append('\\').Append(dominio);
}
}
se (sidParsed) {
restituisce nomeutente.ToString();
}
altro {
restituire null;
}
}
presa {
restituire null;
}
}
// Converte il nome di un utente/gruppo in una stringa SID.
string ConvertStringToSid(nome stringa) {
Tentativo {
// Assegna un buffer per ricevere il SID. La lunghezza massima è:256 byte per il SID
// stesso, più 1 byte per il carattere null.
var sid =nuovo byte[257];
// Assegna i buffer per ricevere i nomi utente e dominio. La lunghezza massima è:
// Utente:20 caratteri
// Dominio:80 caratteri
var utente =new StringBuilder(20);
var dominio =new StringBuilder(80);
// Imposta il dominio e il puntatore SID su null per utilizzare il computer corrente.
dimensione uint =257;
var riuscito =Win32Native.LookupAccountName(null, nome, sid, dimensione riferimento, utente, utente.Capacità, dominio, dominio.Capacità);
se (riuscito) {
// Converte il SID in una stringa da visualizzare.
restituisce il nuovo System.Security.Principal.SecurityIdentifier(sid, 0).Value;
}
altro {
restituire null;
}
}
presa {
restituire null;
}
}
```
hardware © www.354353.com