Я хочу получить данные о конкретном пользователе.Я знаю путь OU этого пользователя, но не могу получить информацию, используя этот путь OU.Это всегда говорит, что пользователь не найден.Может кто-нибудь сказать мне, что мне нужно изменить поисковый фильтр.Пожалуйста помоги .
Код
путь пользователя abc.ds.xyz.net/fGroup/xcxc/Users/123456 abc.ds.xyz.net - это домен, тогда fGroup - это OU, xcxc - это OU,Users - OU, 123456 - cn.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.DirectoryServices;
using System.DirectoryServices.AccountManagement;
using System.Web.UI.WebControls;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
namespace Ldap_authentication
{
public class Program
{
static void Main(string[] args)
{
Console.Write("Enter user: ");
String username = Console.ReadLine();
try
{
DirectoryEntry myLdapConnection = createDirectoryEntry();
DirectorySearcher search = new DirectorySearcher(myLdapConnection);
search.Filter = "(&(OU=fGroup)(OU=xcxc )(OU=Users)(cn=" + username + "))";
SearchResult result = search.FindOne();
if (result != null)
{
ResultPropertyCollection fields = result.Properties;
foreach (String ldapField in fields.PropertyNames)
{
foreach (Object myCollection in fields[ldapField])
Console.WriteLine(String.Format("{0,-20} : {1}",
ldapField, myCollection.ToString ()));
}
}
else
{
// user does not exist
Console.WriteLine("User not found!");
Console.ReadLine();
}
}
catch (Exception e)
{
Console.WriteLine("Exception caught:\n\n" + e.ToString());
Console.ReadLine();
}
}
static DirectoryEntry createDirectoryEntry()
{
DirectoryEntry ldapConnection = new DirectoryEntry("abc.ds.xyz.net");
ldapConnection.Path = "LDAP://DC=abc,DC=ds,DC=xyz,DC=net";
ldapConnection.AuthenticationType = AuthenticationTypes.Secure;
return ldapConnection;
}
}
}
EDIT
search.Filter = "(&(OU=fGroup))";
SearchResult result = search.FindOne();
, когда я меняю search.Filter = "(& (OU = fGroup) (OU = xcxc) (OU =Пользователи) (cn = "+ username +")) ";into search.Filter = "(& (OU = fGroup))";Я получаю результат.Может кто-нибудь сказать мне, как искать с несколькими фильтрами ввода поиска.