How to convert SID to String in .net

.net, c#

Solution

Take a look at the SecurityIdentifier class. You can then do simple things like,

var sidInBytes = (byte[]) *somestuff*
var sid = new SecurityIdentifier(sidInBytes, 0);
// This gives you what you want
sid.ToString();

Problem

I would like to convert the SID's System.Byte[] type to a String. My code: ``` string path = "LDAP://DC=abc,DC=contoso,DC=com"; DirectoryEntry entry = new DirectoryEntry(path); DirectorySearcher mySearcher = new DirectorySearcher(entry); mySearcher.Filter = "(&(objectClass=user)(samaccountname=user1))"; results = mySearcher.FindAll(); foreach (SearchResult searchResult in results) { Console.WriteLine(searchResult.Properties["ObjectSID"][0].ToString()); } ``` I tried with this but it gets the values from the domain I'm currently logged in, and i need from a given domain. ``` System.Security.Principal.NTAccount(user1) .Translate([System.Security.Principal.SecurityIdentifier]).value ```

Original source