// Μετατροπή συμβολοσειράς SID σε όνομα χρήστη/ομάδας.
συμβολοσειρά ConvertSidToString(πλευρά συμβολοσειράς) {
δοκιμάστε {
var domain =new StringBuilder(256);
var όνομα χρήστη =new StringBuilder(256);
var sidParsed =false;
var result =Win32Native.LookupAccountSid(null, sid, username, username.Capacity);
if (αποτέλεσμα &&όνομα χρήστη. Μήκος> 0) {
sidParsed =true;
}
άλλο {
result =Win32Native.LookupAccountSid(null, sid, domain, domain.Capacity, username, username.Capacity);
if (αποτέλεσμα &&όνομα χρήστη.Μήκος> 0 &&τομέας.Μήκος> 0) {
sidParsed =true;
όνομα χρήστη.Append('\\').Append(domain);
}
}
if (sidParsed) {
επιστροφή username.ToString();
}
άλλο {
επιστροφή null?
}
}
πιάσε {
επιστροφή null?
}
}
// Μετατροπή ονόματος χρήστη/ομάδας σε συμβολοσειρά SID.
string ConvertStringToSid(όνομα συμβολοσειράς) {
δοκιμάστε {
// Εκχωρήστε ένα buffer για τη λήψη του SID. Το μέγιστο μήκος είναι:256 byte για το SID
// τον εαυτό του, συν 1 byte για τον μηδενικό χαρακτήρα.
var sid =νέο byte[257];
// Εκχώρηση buffer για λήψη των ονομάτων χρήστη και τομέα. Το μέγιστο μήκος είναι:
// Χρήστης:20 χαρακτήρες
// Τομέας:80 χαρακτήρες
var user =new StringBuilder(20);
var domain =new StringBuilder(80);
// Ορίστε τον τομέα και τον δείκτη SID σε null για να χρησιμοποιήσετε τον τρέχοντα υπολογιστή.
μέγεθος μονάδων =257;
var πέτυχε =Win32Native.LookupAccountName(null, name, side, ref size, user, user.Capacity, domain, domain.Capacity);
αν (επιτυχία) {
// Μετατροπή του SID σε συμβολοσειρά για εμφάνιση.
επιστροφή νέου System.Security.Principal.SecurityIdentifier(sid, 0).Value;
}
άλλο {
επιστροφή null?
}
}
πιάσε {
επιστροφή null?
}
}
```
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα