Я пытаюсь подключиться к Active Directory, используя учетные данные учетной записи службы, которые имеют полный доступ для подключения к Active Directory, но не могут загрузить сведения о свойствах пользователей.
Это происходит, когда я вошел в систему, используя учетную запись 'miminstall', у которой нет доступа для получения сведений о пользователе из AD, но в моем приложении я передал учетные данные учетной записи, которая имеет доступ в AD.
Когда я запускаю Visual Studio с другим пользователем (adma), у которого есть полный доступ к Active Directory, я могу подключиться и получить информацию о пользователе без проблем.
Я не знаюпочему это происходит, несмотря на то, что учетные данные adma передаются в коде.
public string getADattributes(string DN, string operation)
{
string path = "LDAP://xyz.com";
DirectoryEntry directoryEntry = new DirectoryEntry(path, "xyz\\adma", "abc", AuthenticationTypes.Secure);
using (directoryEntry)
{
DirectorySearcher objDSearcher = new DirectorySearcher();
objDSearcher.Filter = "(distinguishedName=" + DN + ")";//search user in AD using DN
objDSearcher.PropertiesToLoad.Add("whenCreated");
objDSearcher.PropertiesToLoad.Add("whenChanged");
objDSearcher.PropertiesToLoad.Add("EmployeeID");
objDSearcher.SearchScope = SearchScope.Subtree;
SearchResult result = objDSearcher.FindOne();
if (result != null)//if count!=0 that means user exist in ad
{
string createdDate = "";
string modifiedDate = "";
string employeeID = "";
if (result.Properties["whenCreated"].Count >0)
{
//able to come inside if statement when running visual studio using adma account but not when runnning with login account i.e., miminstall
createdDate = result.Properties["whenCreated"][0].ToString();
}
if(result.Properties["whenChanged"].Count>0)
{
modifiedDate = result.Properties["whenChanged"][0].ToString();
}
if(result.Properties["EmployeeID"].Count > 0)
{
employeeID = result.Properties["EmployeeID"][0].ToString();
}
}
return null;
}
}