// Μετατροπή συμβολοσειράς 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;
}
else if (Win32Native.GetLastError() ==Win32Native.ERROR_NONE_MAPPED) {
// Το SID αναφέρεται σε έναν τοπικό χρήστη ή ομάδα
domain.Append(".");
sidParsed =Win32Native.LookupAccountSid(null, sid, username, username.Capacity, domain, domain.Capacity, null);
αν (!sidParsed) {
// Σε περίπτωση που το LookupAccountSid αποτύχει για κάποιο λόγο, απλώς επιστρέψτε τη συμβολοσειρά SID.
sidParsed =true;
όνομα χρήστη.Μήκος =0;
}
}
if (sidParsed) {
επιστροφή username.ToString();
}
άλλο {
επιστροφή null?
}
}
αλίευμα (Εξαίρεση ε) {
επιστροφή null?
}
}
// Μετατροπή ονόματος χρήστη/ομάδας σε συμβολοσειρά SID.
string ConvertStringToSid(όνομα συμβολοσειράς) {
δοκιμάστε {
var sid =νέο byte[256];
var sidLength =sid.Length;
var domainName =new StringBuilder(256);
var sidParsed =false;
var result =Win32Native.LookupAccountName(null, name, sid, ref sidLength, domainName, domainName.Capacity, null);
if (αποτέλεσμα &&μήκος πλευράς> 0) {
sidParsed =true;
}
if (sidParsed) {
επιστροφή νέου SecurityIdentifier(sid, 0).Value;
}
άλλο {
επιστροφή null?
}
}
αλίευμα (Εξαίρεση ε) {
επιστροφή null?
}
}
```
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα