Я пытаюсь запросить AD в приложении ASP.Net (4.0), которое работает на Windows Server 2008 R2 (установлен IIS7).(Это также дает сбой при запуске в качестве приложения 2.0)
Для меня это не ново, как я делал это много раз раньше.Я написал небольшую программу ASP.Net, которая отлично работает на моем собственном компьютере (Windows XP с IIS6), но не запускается при запуске в окне 2008 года.
(В результате вы видите список групп пользователяявляется членом в текстовом поле)
(on button_click)
var userName = txtUserName.Text;
if (userName.Trim().Length == 0)
{
txtResults.Text = "-- MISSING USER NAME --";
return;
}
var entry = new DirectoryEntry("LDAP://blah.blah/DC=blah,DC=blah",
"cn=acct, dc=blah, dc=blah",
"pass");
var search = new DirectorySearcher(entry);
search.Filter = "(SAMAccountName=" + userName + ")";
search.PropertiesToLoad.Add("memberOf");
var groupsList = new StringBuilder();
var result = search.FindOne();
if (result != null)
{
int groupCount = result.Properties["memberOf"].Count;
for (int counter = 0; counter < groupCount; counter++)
{
groupsList.Append((string)result.Properties["memberOf"][counter]);
groupsList.Append("\r\n");
}
}
txtResults.Text = groupsList.ToString();
Когда я запускаю этот код, я получаю следующую ошибку при поиске.FindOne ():
System.DirectoryServices.DirectoryServicesCOMException (0x8007203B): A local error has occurred.
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_AdsObject()
at System.DirectoryServices.DirectorySearcher.FindAll(Boolean findMoreThanOne)
at System.DirectoryServices.DirectorySearcher.FindOne()
at WebApplication1._Default.btnSearch_Click(Object sender, EventArgs e)
Мы сделали многоисследуйте это и изучите все настройки IIS7, о которых мы только можем подумать, но пока не будем.Любые подсказки?