Книга: C# для профессионалов. Том II

Получение именующего контекста схемы

Получение именующего контекста схемы

Это приложение имеет только два метода обработки событий: первый метод — обработчик для кнопки загрузки свойств и второй — для запуска поиска в домене. В первой части мы динамически считываем свойства класса User из схемы для вывода его в интерфейсе пользователя.

В методе-обработчике buttonLoadProperties_Click() с помощью метода SetLogonInformation() имя пользователя, пароль и имя хоста считываются во время диалога и сохраняются в членах класса. Затем метод SetNamingContext() задает имя LDAP схемы и имя LDAP используемого по умолчанию контекста. Имя LDAP этой схемы используется в вызове SetUserProperties() для задания свойств в окне списка:

private void buttonLoadProperties_Click(object sender, System.EventArgs e) {
 try {
  SetLogonInformation();
  SetNamingContext();
  SetUserProperties(schemaNamingContext);
 } catch (Exception ex) {
MessageBox.Show("Cheek your inputs! " + ex.Message);
 }
}
protected void SetLogonInformation() {
 username =
  (textBoxUsername.Text == "" ? null :
  textBoxUsername.Text);
 password =
  (textBoxPassword.Text == "" ? null :
  textBoxPassword.Text);
 hostname = textBoxHostname.Text;
 if (hostname ! = "") hostname += "/";
}

Во вспомогательном методе SetNamingContext() мы используем корень дерева каталога для получения свойств сервера. Мы заинтересованы в значениях двух свойств: SchemaNamingContext.

protected string SetNamingContext() {
 using (DirectoryEntry de = new DirectoryEntry()) {
  string path = "LDAP://" + hostname + "/rootDSE";
 de.Username = username;
 de.Password = password;
 de.Path = path;
 schemaNamingContext =
  de.Properties["schemaNamingContext"][0].ToString();
 defaultNamingContext =
  de.Properties["defaultNamingContext"][0].ToString();
 }
}

Оглавление книги


Генерация: 1.507. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз