Абдулин Марат дата публикации 26-10-2001 11:37 DCOM permissions
Технология DCOM основана на технологии COM и представляет собой ее продолжение. Основное назначение DCOM - организация взаимодействия клиента с удаленным сервером.
Как пользоваться DCOM
Чтобы воспользоваться возможностями DCOM должны быть соблюдены следующие требования:
- Наличие Клиент.exe, Сервер.exe. ("Каркасы" этих приложений прилагаются к документу см Samples\DCOMSvr).
- Наличие сети как минимум из двух компьютеров (платформы 9x, Me, NT, 2000). Компьютеры должны "видеть" друг друга.
- На клиентском и серверном компьютере должна быть установлена поддержка DCOM (на NT и 2000 поддержка DCOM есть по умолчанию, в 9x и Me поддержка отключена, ее можно получить по адресу http://www.microsoft.com/com/resources/downloads.asp). Компьютеры должны быть в одном домене (на сколько критично это требование под вопросом, я не исследовал, информация из http://www.delphikingdom.com).
- Сервер.exe должен быть зарегистрирован на клиентской машине и серверной машине (после регистрации на клиентской машине Сервер.exe можно удалить). Регистрация Сервер.exe производится из командной строки: сервер.exe regserver. Разрегистрация также из командной строки: сервер.exe unregserver
- Должен быть настроен DCOM (можно не задумываясь продублировать настройки, как на клиенте, так и на сервере) для запуска и доступа к Сервер.exe (настроить DCOM можно при помощи утилиты DCOMCNFG.EXE или программно, см. Samples\DcomPerm).
- Если DCOM настраивается для Win9x, то после настройки необходимо перезагрузить компьютер.
- Если изменяются настройки протоколов используемых в DCOM, то следует перезагрузить компьютер (действительно для любой платформы).
- Если Сервер.exe запускается на платформе 9x, то сервер должен быть предварительно загружен, можно поместить запуск сервера в StartUp.
Скачать исходные коды: DComPermSrc.zip (28 K)
Настройка DCOM при помощи DCOMCNFG.EXE |
Закладка DefaultProperties
Элемент | Значение | 9x | NT |
Enable Distributed COM on this computer | True | + | + |
Enable COM Internet Services on this computer | Не имеет значения | - | + |
Default Authentication Level | None | + | + |
Default Impersonation Level | Impersonate | + | + |
Provide additional security for reference tracking | False | + | + |
Закладка DefaultSecurity
Элемент | Значение | 9x | NT |
Enable remote connection | True | + | - |
Default access permissions | Everyone = allow access | - | + |
Default access permissions | The world = grant access | + | - |
Default launch permissions | Everyone = allow launch | - | + |
Закладка Applications
Позиционироваться на сервер.exe. Кнопка "Properties..."
Закладка Location
Элемент | Значение | 9x | NT |
Run application on the computer where the data is located | False | + | + |
Run application on this computer | True | + | + |
Run application on the following computer | False | + | + |
Закладка Security
Элемент | Значение | 9x | NT |
Use default access permissions | True | + | + |
Use default launch permissions | True | - | + |
Use custom configuration permissions | False | - | + |
Закладка Identity
Элемент | Значение | 9x | NT |
Which user account do you want to use to run this application | The interactive user | - | + |
Программная настройка DCOM |
Для программной настройки DCOM можно воспользоваться процедурами модуля BDcomPrm
DefaultProperties
Элемент | Процедура | Описание | 9x | NT |
Enable Distributed COM on this computer | IsDCOMOk | Проверяет наличие поддержки DCOM | + | + |
| IsEnabledDCOM | Проверяет разрешен ли DCOM на данной машине | + | + |
| SetEnableDCOM | Разрешает DCOM на данной машине | + | + |
| IsDCOMProtocolsEnabled | Проверяет наличие протоколов DCOM | - | + |
Default Authentication LevelDefault Impersonation Level | IsInitializeSecurityOk | Проверяет можно ли устанавливать параметры Security. Возвращает True для платформы NT и False для 9x | - | + |
| InitializeDefaultSecurity | Устанавливает параметры Security по умолчанию.Вызов данной процедуры необходимо поместить перед Application.Initialize в клиентской и серверной программе.Процедуру можно вызывать только один раз для текущего процесса.Процедура должна быть вызвана до первого обращения к COM-объекта, требующего маршалинга | . + | + |
| SetDefaultDCOMCommunicationProperties | Устанавливает параметры по умолчанию для Authentication Level, Impersonation Level | + | + |
| CreateRemoteComObjectEx | Определяет Authentication Level, Impersonation Level запускаемого серверного приложения.Данная процедура может использоваться вместо CreateRemoteComObject | + | + |
Provide additional security for reference tracking | RemoveLegacySecure-References | При разрешении DCOM необходимо вызвать эту процедуру, чтобы сбросить флажок Повышенной безопасности для отслеживания ссылок | + | + |
DefaultSecurity
Элемент | Процедура | Описание | 9x | NT |
Enable remote connection | IsDCOMOk, IsEnabledDCOM, SetEnabledDCOM | | + | + |
Default access permissions | ListDefaultAccessACL | Возвращает в строке описание разрешений доступа к DCOM приложениям по умолчанию. Данное описание может быть выведено в Memo. | - | + |
| ChangeDefaultAccessACL | ChangeDefaultAccessACL Изменяет параметры доступ к DCOM приложениям по умолчанию.Principal - имя пользователя (например Everyone)SetPrincipal - True добавить пользователя в список, False - удалить.Permit - разрешить параметры для указанного пользователя | - | + |
Default launch permissions | ListDefaultLaunchACL | Возвращает в строке описание разрешений запуска DCOM приложений по умолчанию. Данное описание может быть выведено в Memo | - | + |
| ChangeDefaultLaunchACL | ChangeDefaultLaunchACL Изменяет параметры запуска DCOM приложений по умолчанию - + | - | + |
| IsDefaultLaunchAccess-Allowed | Возвращает True, если разрешен запуск DCOM приложений по умолчанию. | - | + |
Application Security
Все процедуры и функции данной категории получают в качестве входного параметра AppID - CLSID объекта сервера.
Элемент | Процедура | Описание | 9x | NT |
Access permissions |
ListAppIDAccessACL |
Возвращает в строке описание разрешений доступа к DCOM приложению. Данное описание может быть выведено в Memo.AppID - CLSID объекта сервера. | - | + |
|
ChangeAppIDAccessACL |
Изменяет параметры доступ к DCOM приложениям по умолчанию.AppID - CLSID объекта сервера.Principal - имя пользователя (например Everyone)SetPrincipal - True добавить пользователя в список, False - удалить.Permit - разрешить параметры для указанного пользователя | - | + |
Default launch permissions |
ListAppIDLaunchACL |
Возвращает в строке описание разрешений запуска DCOM приложения. Данное описание может быть выведено в Memo.AppID - CLSID объекта сервера. | - | + |
|
ChangeAppIDLaunchACL |
Изменяет параметры запуска DCOM приложений по умолчанию.AppID - CLSID объекта сервера. | - | + |
|
IsLaunchAccessAllowed |
Возвращает True, если разрешен запуск DCOM приложения. | - | + |
|
AllowLaunchAccess |
Разрешает запуск DCOM приложения | - | + |
Закладка Identity
Все процедуры и функции данной категории получают в качестве входного параметра AppID - CLSID объекта сервера.
Элемент | Процедура | Описание | 9x | NT |
Which user account do you want to use to run this application |
IsInteractiveUser |
Проверяет, используется ли для запуска приложения учетная запись взаимодействующего пользователя | - | + |
|
SetInteractiveUser |
Устанавливает параметр: использовать для запуска приложения учетную запись взаимодействующего пользователя | - | + |
Остальные процедуры и функции
Все остальные процедуры и функции модуля BDcomPrm носят служебный характер.
Абдулин Марат
ООО "АТОЛ технологии", руководитель отдела программирования
Скачать исходные коды: DComPermSrc.zip (28 K)
[Настройка DCOM]
Обсуждение материала [ 20-11-2001 09:40 ] 4 сообщения |