Поделиться через


Маскировка (службы компонентов)

Существуют два фактора, определяющих поведение олицетворения: авторитет, который клиент явно предоставляет серверу через уровень олицетворения, и способность сервера скрывать собственную личность при вызове от имени клиента. Эта последняя возможность называется маскировкой. Маскировка связана с удостоверением безопасности, под которым выполняется вызов сервера.

Когда сервер олицетворяет клиента, он имеет прямой доступ к учетным данным безопасности клиента. В очень локальном смысле поток сервера принимает идентичность клиента. Но когда сервер выполняет вызовы за пределами процесса, удостоверение клиента не обязательно будет проецироваться как удостоверение, под которым выполняется вызов.

При включении маскировки сервер может совершать вызовы от имени клиента, используя его удостоверение. При отключении маскировки вызовы сервера будут выполняться под собственным удостоверением сервера.

Кроме того, существуют две формы маскирования, статические маскировки и динамические, которые можно описать следующим образом:

  • Подделка со статическим сокрытием. Исходное удостоверение клиента (реализованное в качестве маркера потока сервера) может быть предоставлено один раз на нижестоящий сервер при вызове с помощью CoSetProxyBlanket, установив исходное удостоверение клиента один раз на прокси, и этот маркер потока будет использоваться при последующих вызовах метода.
  • Имитация с динамической маскировкой. Исходное удостоверение клиента обнаруживается как маркер потока сервера на каждом вызове метода нижестоящего сервера. По сути, идентичность, которая представляется, может быть динамически определена. Затраты, необходимые для этого, могут быть значительно дороже.

Для приложений COM+ конфигурация по умолчанию предназначена для динамической маскировки. Это можно изменить программным и административным способом. Хотя динамическое скрытие может вызывать снижение производительности, оно обеспечивает гибкость, которая обычно требуется в обстоятельствах, изначально требующих использование олицетворения.

Для получения более детальной информации о маскировке и точном описании возможных действий см. раздел Cloaking в документации COM.

подмена клиента и делегирование

требования Client-Side для самоотождествления

требования Server-Side для олицетворения