Технология 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.
Проверяет можно ли устанавливать параметры 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 носят служебный характер.
DCOM permissions: статья описывает требования и настройки для использования технологии DCOM в приложениях, а также предоставляет примеры кода на русском языке.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.