public static DirectoryEntry GetDirectoryObjectByGUID(string paramGUID)
{
try
{
string objectGUID = Guid2OctetString(new Guid(paramGUID));//转换GUID
DirectoryEntry de = GetDirectoryObject();
DirectorySearcher deSearch = new DirectorySearcher();//查询
deSearch.SearchRoot = de;
deSearch.Filter = "(&(objectGUID=" + objectGUID + "))";
deSearch.SearchScope = SearchScope.Subtree;
SearchResult results = deSearch.FindOne();
if (results != null)
{
return new DirectoryEntry(results.Path, paramADUser, paramADPasword, AuthenticationTypes.Secure);
}
else
{
return null;
}
}
catch (Exception e)
{
return null;
}
{
try
{
string objectGUID = Guid2OctetString(new Guid(paramGUID));//转换GUID
DirectoryEntry de = GetDirectoryObject();
DirectorySearcher deSearch = new DirectorySearcher();//查询
deSearch.SearchRoot = de;
deSearch.Filter = "(&(objectGUID=" + objectGUID + "))";
deSearch.SearchScope = SearchScope.Subtree;
SearchResult results = deSearch.FindOne();
if (results != null)
{
return new DirectoryEntry(results.Path, paramADUser, paramADPasword, AuthenticationTypes.Secure);
}
else
{
return null;
}
}
catch (Exception e)
{
return null;
}
}
public static string Guid2OctetString(Guid objectGuid)
{
byte[] byteGuid = objectGuid.ToByteArray();
StringBuilder sb = new StringBuilder();
foreach (byte b in byteGuid)
{
sb.Append(@"\" + b.ToString("x2"));
}
return sb.ToString();
}