正如您的许多答案所示,我可以使用PrincipalContext
和PrincipalSearcher
获取特定用户名的详细信息,但我很想知道过滤器的确切语法和用法DirectorySearcher
。
任何人都可以帮助我找到正确的道路来了解更多信息,因为我有一个DirectorySearcher
过滤器,但我没有得到预期的结果。
这是我的代码
Dictionary<string, string> Ids = new Dictionary<string, string>();
DirectoryEntry entry = new DirectoryEntry(ConfigurationManager.AppSettings["LDAPPath"].ToString());
DirectorySearcher dSearcher = new DirectorySearcher(entry);
string guid1 = string.Empty;
dSearcher.Filter = "(&(objectClass=user)(cn=SomeUserName"))";
dSearcher.PropertiesToLoad.Add("isDeleted");
dSearcher.PropertiesToLoad.Add("objectGUID");
dSearcher.PropertiesToLoad.Add("objectSid");
SearchResult sResultSet = dSearcher.FindOne();
if (sResultSet.Properties["objectGUID"][0].GetType() == typeof(Byte[]))
{
Byte[] objByteArray = (Byte[])sResultSet.Properties["objectGUID"][0];
Guid objGUID = new Guid(objByteArray);
Ids.Add("GUID", objGUID.ToString());
}
if (sResultSet.Properties["objectSid"][0].GetType() == typeof(Byte[]))
{
Byte[] sidInBytes = (Byte[])sResultSet.Properties["objectSid"][0]; ;
var objSid = new SecurityIdentifier(sidInBytes, 0);
Ids.Add("SID", objSid.ToString());
}
return Ids;
我想要做的是通过传递用户名来获取用户的指示,但我没有得到结果而且我不知道我在这段代码中做错了什么。
当我使用PrincipalContext
和PrincipalSearcher
类时,我得到了正确的结果。请帮我。谢谢