Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Разработка корпоративных приложений в Access 2002 - Литвин П.

Литвин П. Разработка корпоративных приложений в Access 2002 — Спб.: Питер, 2002. — 848 c.
ISBN 5-314-00181-0
Скачать (прямая ссылка): razrabotkaprilojeniy2002.djvu
Предыдущая << 1 .. 134 135 136 137 138 139 < 140 > 141 142 143 144 145 146 .. 357 >> Следующая


Рис. 8.10. Объектная модель ADOX включает коллекции Users и Groups, являющиеся потомками объекта Catalog
342
Глава 8 ¦ Защита приложений
Управление учетными записями с помощью ADOX
Объект ADOX Catalog содержит коллекцию Users, подобную одноименной коллекции объекта DAO Workgroup. В этой коллекции содержатся объекты User, представляющие пользователей, которые входят в рабочую группу. Приведенная в листинге 8.23 процедура ListUsersADOX (вы найдете ее в модуле basSecurity- ExamplesADOX базы данных CH08.MDB) показывает, как можно перебрать элементы этой коллекции.
Листинг 8.23
Sub ListUsersADOXO
1 С помощью AD0X выводит в окне отладки перечень всех ' пользователей рабочей группы.
Dim cat As ADOX.Catalog Dim usr As ADOX.User
Set cat - New ADOX.Catalog
cat.ActiveConnection - CurrentProject.Connection
Debug.Print "The Users collection has " & _ cat.Users.Count & " members:"
For Each usr In cat.Users Debug.Print usr.Name Next usr
Set usr - Nothing Set cat - Nothing End Sub
Процедура ListUsersADOX начинает свою работу с создания нового объекта ADOX Catalog и подключения его к текущей базе данных (для чего свойству ActiveConnection объекта Catalog присваивается значение свойства Connection объекта CurrentProject). Затем она выводит в окне отладки количество пользователей, взяв его из свойства Count коллекции Users, входящей в объект Catalog. После этого процедура проходит по коллекции Users и выводит значение свойства Name каждого из входящих в нее объектов.
Группы пользователей представлены в объекте Catalog коллекцией Groups (очень сходным с коллекцией Users). Процедура ListGroupsADOX, приведенная в листинге 8.24, перебирает входящие в него объекты Group и выводит в окне отладки имя каждой группы.
Листинг 8.24
Sub ListGroupsADOXО
' Вывод списка всех групп рабочей группы
1 в окне отладки с помощью AD0X.
Dim cat As ADOX.Catalog Dim grp As ADOX.Group
Set cat - New ADOX.Catalog
cat.ActiveConnection - CurrentProject.Connection
Debug.Print "The Groups collection has " & _ cat.Groups.Count & ' members:"
Управление защитой с помощью ADOX
343
For Each grp In cat.Groups Debug.Print grp.Name Next grp
Set grp - Nothing Set cat - Nothing End Sub
В ADOX каждый объект User содержит собственную коллекцию Groups, представляющую набор групп, в которые входит данный пользователь. Аналогично каждый объект Group содержит коллекцию Users, представляющую всех входящих в группу пользователей. Эта несколько избыточная, но зато удобная структура в точности повторяет отношения коллекций Users и Groups в DAO.
Рассмотрим в качестве примера приведенную в листинге 8.25 процедуру List- ManagersADOX из модуля basSecurityExamplesADOX, которая обращается к коллекции Users группы Managers с целью вывода в окне отладки списка всех членов этой группы.
Листинг 8.25
Sub ListManagersADOXO
' Выводит список всех членов группы Managers ' в окне отладки с помощью ADDX.
Dim cat As ADOX.Catalog Dim grpManagers As ADOX.Group Dim usr As ADOX.User
Set cat - New ADOX.Catalog cat.ActiveConnection - CurrentProject.Connection
Set grpManagers - cat.GroupslManagers
For Each usr In grpManagers.Users Debug.Print usr.Name Next usr
Set usr - Nothing Set grpManagers - Nothing Set cat - Nothing End Sub
Создание учетных записей пользователей с помощью ADOX
Чтобы создать новую учетную запись пользователя с помощью ADOX, нужно обратиться к методу Append коллекции Catalog.Users, указав имя пользователя и его пароль. ADOX автоматически присвоит новой учетной записи сгенерированный случайным образом личный идентификатор (PID). Однако доступа к этому PID у вас не будет, и вы не сможете восстановить учетную запись, если по какой-то причине она будет удалена или файл рабочей группы окажется поврежденным.
Процедура CreateNewUserADOX из листинга 8.26 создает новую учетную запись пользователя с именем Anna и паролем foo.
344
Глава 8 • Защита приложений
Листинг 8.26
Sub CreateNewUserADOXO
' Создает новую учетную запись ' пользователя с помощью AD0X.
' Создается следующая запись:
Пользователь - Anna,
PID - Автоматически генерируется AD0X
Пароль - foo
Dim cat As ADOX.Catalog
Set cat - New ADOX.Catalog
cat.ActiveConnection - CurrentProject.Connection
cat.Users.Append "Anna", "foo"
cat.Users("Anna").Groups.Append "Users"
Set cat - Nothing End Sub
Новую учетную запись по аналогии с тем, как это делается в DAO, нужно добавить во встроенную группу Users, иначе пользователь не сможет ею воспользоваться.
СОВЕТ
Невозможность задавать PID новых учетных записей является серьезным недостатком ADOX, который в будущем, как мы надеемся, будет устранен. Пока же эту проблему можно обой(tm), пользуясь при создании учетных записей запросами языка определения данных SQL (см. ниже раздел "Управление учетными записями с помощью SQL").
Еще проще создать новую группу: для этого достаточно вызвать метод Append объекта Catalog.Groups и указать ему имя новой группы. Пример того, как это делается, перед вами в листинге 8.27.
Предыдущая << 1 .. 134 135 136 137 138 139 < 140 > 141 142 143 144 145 146 .. 357 >> Следующая