- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания C# для профессионалов. Том II - Симон Робинсон
Шрифт:
Интервал:
Закладка:
Заключение
В этой главе было рассмотрено использование базовых классов .NET для доступа к реестру и файловой системе из кода C#. Мы видели, что базовые классы предоставляют достаточно мощные и при этом доступные объектные модели для создания, модификации или чтения ключей в случае реестра, а в случае файловой системы — для копирования файлов, перемещения, создания и удаления файлов и папок, а так же для чтения и записи текстовых или двоичных файлов.
В этой главе предполагалось, что код должен выполняться с помощью учетной записи, которая имеет необходимые полномочия доступа для выполнения действий, требуемых кодом. Очевидно, что вопрос безопасности является важным вопросом там, где дело касается доступа к файлам, и эта область будет рассмотрена в главе 25.
Глава 15
Работа с активным каталогом
Мы получаем активный каталог (Active Directory) как часть Windows 2000 Server. Активный каталог является службой каталога, где может храниться информация о пользователях, принтерах, службах и обычные данные. Exchange Server 2000 компании Microsoft интенсивно использует его для хранения общедоступных папок и другой информации. Мы также можем хранить в активном каталоге определяемые нами данные. В файловой системе каталог хранит файлы, телефонный каталог хранит телефонные номера и имена. Служба каталога делает доступной информацию в каталоге. С помощью Проводника можно, например, находить файлы.
До появления ADS сервер Exchange мог использовать активный каталог для хранения своих объектов. Системным администраторам приходилось конфигурировать два идентификатора пользователя для одного человека: учетную запись пользователя в домене Windows NT, чтобы можно было зарегистрироваться в системе, и пользователя в Exchange Directory. Это было необходимо, так как для пользователей требовалась дополнительная информация (такая как адреса e-mail, телефонные номера и так далее), а данные о пользователях домена NT были нерасширяемыми, что не позволяло поместить туда требуемую информацию. Теперь системному администратору достаточно сконфигурировать только одного пользователя для человека в активном каталоге, данные объекта пользователя можно расширять, чтобы удовлетворить требованиям Exchange Server. Мы можем также расширить эту информацию.
Рассмотрим менеджера проекта в большой компании, который ищет с помощью Active Directory разработчика, способного создать приложения с помощью C#. Было бы неплохо, если бы менеджер мог сделать простой запрос для получения списка всех разработчиков, удовлетворяющих его требованиям. Такую возможность предоставляет активный каталог, в котором объект пользователя дополняется списком навыков.
Рассмотрим другой пример, где активный каталог может сыграть полезную роль: допустим, сконфигурирован используемый по умолчанию черно-белый принтер, но потребовалась цветная печать. Пользователь знает, что в пределах досягаемости имеется цветной принтер, который удовлетворяет требованиям, но какое у этого принтера имя? В диалоговом окне печати принтер можно выбирать из списка сотен странных имен типа Pikachu, Poliwag, Cloyster, Jynx, Staryu, которые когда-то выбрал системный администратор. Как выбрать правильный принтер? Давайте создадим решение, где пользователь может ввести такие требования, как расположение, двусторонняя печать и цвет для поиска принтера. Такая дополнительная информация о принтере также хранится в активном каталоге.
С помощью среды .NET можно легко получить доступ и манипулировать данными в службе каталога с помощью классов из пространства имен System.DirectoryServices.
Отметим, что для примеров в этой главе требуется Windows 2000 Server с установленным и сконфигурированным активным каталогом (Active Directory). После небольшой адаптации вы можете использовать классы пространства имен System.DirectoryServices, применяющиеся для службы каталогов Novell и Windows NT4.
В этой главе мы рассмотрим:
□ Архитектуру активного каталога.
□ Чтение и изменение данных в активном каталоге.
□ Поиск объектов в активном каталоге.
Архитектура активного каталога
Здесь мы рассмотрим, как работает активный каталог, для чего он используется и какие данные можно в нем хранить.
Свойства
Свойства активного каталога представлены в следующем списке:
□ Данные в активном каталоге группируются иерархически. Объекты могут храниться внутри других объектов-контейнеров. Вместо того чтобы входить в один большой список, пользователи могут группироваться внутри организационных единиц. Организационная единица включает в себя другие организационные единицы, и таким образом можно построить дерево.
□ Активный каталог использует репликацию мультимастера. В противоположность доменам Windows NT 4, где контроллер первичного домена был мастером, при использовании активного каталога все серверы являются мастерами. Если первичный контроллер домена в домене Windows NT 4 выключен, ни один пользователь не может сменить пароль; системный администратор обновляет список пользователей только в том случае, когда первичный контроллер домена включен и работает. При использовании активного каталога обновление можно делать на любом сервере. Эта модель более масштабируема, так как обновления могут происходить на различных серверах одновременно. Недостатком такой модели является большая сложность репликации. Вопросы репликации мы рассмотрим позже.
□ Топология репликации является гибкой, чтобы поддерживать репликации на медленных соединениях в WAN. Как часто должны реплицироваться данные, конфигурируется администраторами доменов.
□ Активный каталог поддерживает открытые стандарты. LDAP (Lightweight Directory Access Protocol — легковесный протокол доступа к каталогу), является одним из стандартов, который может использоваться для доступа к данным в активном каталоге. LDAP является стандартом Интернета, который может использоваться для доступа ко множеству различных служб каталога. Так как LDAP также является интерфейсом программирования, то определен LDAP API, который можно применять для доступа к активному каталогу с помощью языка C. Предпочтительный интерфейс программирования компании Microsoft для служб каталога — это ADSI (Active Directory Service Interface — интерфейс служб активного каталога). Его конечно, нельзя назвать открытым стандартом. В противоположность LDAP API с помощью ADSI можно получить доступ ко всем свойствам активного каталога. Другим стандартом, который используется в активном каталоге, является Kerberos. Kerberos используется для аутентификации. Служба Kerberos в Windows 2000 может также применяться для аутентификации клиентов Unix. Это не работает в обратную сторону; серверы Unix Kerberos не могут аутентифицировать клиентов Windows 2000, так как компания Microsoft расширила протокол Kerberos для своего собственного использования.
□ При использовании активного каталога мы имеем детально структурированную систему безопасности. Каждый объект, хранящийся в активном каталоге, имеет связанный список управления доступом, определяющий, кто и какие действия может производить с объектом.
Объекты в каталоге являются строго типизированными. Это означает, что тип объектов точно определен, к объекту нельзя добавить ни одного не специфицированного атрибута. В схеме (Schema) определены типы объектов, а также части объектов (атрибуты). Атрибуты могут быть обязательными или необязательными.
Концепции активного каталога
Прежде чем программировать для активного каталога, необходимо познакомиться с некоторыми концепциями. Существует много новых терминов, которые надо знать при разговоре об активном каталоге.
Объекты
В активном каталоге хранятся объекты. Объект — это что-то конкретное, например пользователь, принтер или общий сетевой ресурс. Объекты имеют обязательные и необязательные атрибуты, которые описывают объект. Примерами атрибутов объекта user (пользователь) являются фамилия, имя, адрес e-mail, телефонный номер и т. д.
На следующем рисунке показаны: контейнерный объект Wrox Press, несколько объектов пользователей, контакт, принтер и объект группы пользователей:
Схема
Каждый объект является экземпляром класса в схеме (schema). Схема хранится среди объектов активного каталога. Мы должны различать classSchema и attributeSchema. В classSchema определяется тип объекта, а также данные о том, какие обязательные и необязательные атрибуты имеет объект. attributeSchema определяет, на что похож атрибут, и какой допустим для него синтаксис.
Можно пользоваться собственными типами и атрибутами и добавить их к схеме. Помните, что новый тип схемы вам не удастся убрать из активного каталога. Можно пометить его как неактивный, чтобы новые объекты больше нельзя было создавать, но могут существовать объекты этого типа, поэтому невозможно удалить классы или атрибуты, которые определены в схеме. Windows 2000 Administrator не имеет достаточных полномочий для создания новых записей схемы, здесь нужен Windows 2000 Domain Enterprise Administrator.