Симон Робинсон - C# для профессионалов. Том II

Тут можно читать онлайн Симон Робинсон - C# для профессионалов. Том II - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Лори, год 2003. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    C# для профессионалов. Том II
  • Автор:
  • Жанр:
  • Издательство:
    Лори
  • Год:
    2003
  • Город:
    Москва
  • ISBN:
    5-85582-187-0
  • Рейтинг:
    4.88/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Симон Робинсон - C# для профессионалов. Том II краткое содержание

C# для профессионалов. Том II - описание и краткое содержание, автор Симон Робинсон, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
C# для профессионалов

Платформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.

В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.

Для кого предназначена эта книга

Эта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.

Основные темы книги

• Все особенности языка C#

• C# и объектно-ориентированное программирование

• Приложения и службы Windows

• Создание web-страниц и web-служб с помощью ASP NET

• Сборки .NET

• Доступ к данным при помощи ADO NET

• Создание распределённых приложений с помощью NET Remoting

• Интеграция с COM, COM+ и службой Active Directory

C# для профессионалов. Том II - читать онлайн бесплатно полную версию (весь текст целиком)

C# для профессионалов. Том II - читать книгу онлайн бесплатно, автор Симон Робинсон
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Сначала мы соединяемся с организационной единицей Wrox Press. Здесь начинается поиск. Создадим объект DirectorySearcher, где задан SearchRoot. Фильтр определяется как ( &(objectClass=user)(description=Auth*)) для того, чтобы мы нашли все объекты типа user, где свойство descriptionначинается с последовательности Auth, за которой может следовать что-то еще. Область поиска должна быть поддеревом, чтобы поиск происходил в порождаемых организационных единицах для Wrox Press:

DirectoryEntry de new DirectoryEntry();

de.Path = "LDAP://OU=Wrox Press, " + "DC=eichkogelstrasse, DC=local";

DirectorySearcher searcher = new DirectorySearcher();

searcher.SearchRoot = de;

searcher.Filter = "(&(objectClass=user)(description=Auth*))";

searcher.SearchScope = SearchScope.Subtree;

В результате поиска мы хотим получить свойства name, description, givenName, и wWWHomePage.

searcher.PropertiesToLoad.Add("name");

searcher.PropertiesToLoad.Add("description");

searcher. PropertiesToLoad.Add("givenName");

searcher.PropertiesToLoad.Add("wWWHomePage");

Мы готовы начать поиск. Однако, результат необходимо отсортировать. DirectorySearcherимеет свойство Sort, где можно задать SortOption. Первый аргумент конструктора SortOptionопределяет свойство, по которому будет проводиться сортировка, второй аргумент определяет направление сортировки. Перечисление SortDirectionимеет значения Ascendingи Descending.

Чтобы начать поиск, можно использовать метод FindOne()для нахождения первого объекта или FindAll(), чтобы найти все объекты. FindOne()вернет простой SearchResult, FindAll()вернет SearchResultCollection. Мы хотим получить всех авторов, поэтому используем FindAll():

searcher.Sort = new SortOption("givenName", SortDirection.Ascending);

SearchResultCollection Results = searcher.FindAll();

С помощью цикла foreachмы получаем доступ ко всем SearchResultв SearchResultCollection. SearchResultпредставляет один объект в кэше поиска. Свойство Propertiesвозвращает ResultPropertyCollection, где мы получаем доступ ко всем свойствам и значениям по имени свойства и по индексу.

SearchResultCollection results = Searcher.FindAll();

foreach (SearchResult result in results) {

ResutPropertyCollection props = result.Properties;

foreach (string propName in props.PropertyNames) {

Console.Write(propName + ": ");

Console.WriteLine(props[propName][0]);

}

Console.WriteLine();

}

}

Если необходимо получить весь объект после поиска, то это также возможна. SearchResultимеет метод GetDirectoryEntry(), который возвращает соответствующую запись DirectoryEntryнайденного объекта.

Результирующий вывод показывает начале списка всех авторов книги Professional C# с выбранными свойствами

Поиск объектов пользователей Последнее приложение которое будет создано в - фото 47

Поиск объектов пользователей

Последнее приложение, которое будет создано в этой главе, это приложение Windows Forms. С его помощью можно найти все объекты пользователей домена с динамически определяемой строкой фильтра. Можно также задать свойства объектов пользователей, которые должны выводиться.

Интерфейс пользователя

Интерфейс пользователя выводит нумерованные шаги, помогая использовать приложение.

1. На первом шаге можно ввести имя пользователя, пароль и контроллер домена. Вся эта информация является необязательной. Если контроллер домена не вводится, то соединение работает со связыванием без сервера. Если отсутствует имя пользователя, то используется контекст безопасности текущего пользователя.

2. С помощью кнопки все имена свойств объекта Userмогут загружаться динамически в окно списка ListBoxProperties.

3. После загрузки имен свойств, можно выбрать свойства, которые должны выводиться. Режим SelectionModeокна списка задач как MultiSimple.

4. Можно ввести фильтр для ограничения поиска. Значение по умолчанию, которое задается в этом диалоговом окне, ищет все объекты пользователей: ( objectClass=user).

5. Теперь можно начать поиск.

Получение именующего контекста схемы Это приложение имеет только два метода - фото 48

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

Это приложение имеет только два метода обработки событий: первый метод — обработчик для кнопки загрузки свойств и второй — для запуска поиска в домене. В первой части мы динамически считываем свойства класса 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();

}

}

Получение имен свойств класса пользователя

У нас есть имя LDAP для доступа к схеме. Можно использовать его для доступа к каталогу и для считывания свойств. Мы заинтересованы не только в свойствах класса User, но также в свойствах базовых классов для User: Organizational-Person, Personи Top. В этой программе имена базовых классов жестко закодированы. Можно было бы прочитать базовый класс динамически с помощью атрибута subClassOf. Метод GetSchemaProperties()возвращает строковый массив со всеми именами свойств определенного типа объектов. Все имена свойств собраны в объекте propertiesтипа StringCollection:

protected void SetUserProperties(string schemaNamingContext) {

StringCollection properties = new StringCollection();

string[] data = GetSchemaProperties(schemaNamingContext, "User");

properties.AddRange(GetSchemaProperties(schemaNamingContext, "Organizational-Person"));

properties.AddRange(GetSchemaProperties(schemaNamingContext, "Person"));

properties.AddRange(GetSchemaProperties(schemaNamingContext, "Top"));

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Симон Робинсон читать все книги автора по порядку

Симон Робинсон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# для профессионалов. Том II отзывы


Отзывы читателей о книге C# для профессионалов. Том II, автор: Симон Робинсон. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x