Доступ к свойствам AD (активного каталога) - PullRequest
0 голосов
/ 10 января 2012

Я получаю доступ к свойствам AD через метод ниже.Он отлично работает в моем локальном виртуальном жестком диске (где я администратор домена / локального / корпоративного уровня), но то же самое не работает, когда я получаю доступ от пользователя домена (у которого есть только локальный доступ администратора).

Но тот же пользователь домена (только с локальным доступом администратора) получает доступ ко всем деталям свойства AD с помощью инструментов ADExplorer (SysInternal).

Это потому, что это неуправляемый код и API-интерфейсы Windows для доступа и в .Net Iнужен администратор домена или какие-то привилегии?

Или есть другой способ - который мне не хватает в .Net для доступа к свойствам AD без дополнительной привилегии на уровне домена ??

public void getCurrentUserADDetails(string UserName)
{
   string ladpQueryStr = "LDAP://sp.com";

   DirectoryEntry dirEntry = new DirectoryEntry(ladpQueryStr);
   DirectorySearcher srch = new DirectorySearcher(dirEntry);

   srch.Filter = "(cn=" + UserName.ToLowerInvariant().Trim() + ")";

   srch.PropertiesToLoad.Add("name");
   srch.PropertiesToLoad.Add("memberOf");
   srch.PropertiesToLoad.Add("prop123");

   SearchResult searcResult = srch.FindOne();

   if (searcResult != null)
   {
      ResultPropertyCollection propertiesCollection = searcResult.Properties;

      List<DisplayClass> grdDataList = new List<DisplayClass>();

      foreach (string strKey in propertiesCollection.PropertyNames)
      {
         DisplayClass dispC = new DisplayClass();
         dispC.pName = strKey;
         dispC.pValue = Convert.ToString(propertiesCollection[strKey][0]);

         grdDataList.Add(dispC);
      }

      dataGridView1.DataSource = grdDataList;
   }
}

Это будет работать в ASP.Net

заранее спасибо:)

Ответы [ 2 ]

0 голосов
/ 11 января 2012

Используя явную аутентификацию и изменив фильтр поиска, я получил результаты.

DirectoryEntry dirEntry = new DirectoryEntry (путь, имя пользователя, пароль, AuthenticationType);

0 голосов
/ 10 января 2012

Я предполагаю, что вы используете встроенную аутентификацию - чтобы это работало, вам нужно настроить делегирование учетной записи, если вы не запускаете свое приложение на контроллере домена.Это довольно сложный процесс, но в Google есть тонна информации.

...