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


Активация сеанса и сеанса с помощью Моникера сеанса

Активация между сеансами (также называемая активацией между сеансами) позволяет клиенту запускать (активировать) локальный процесс сервера в указанном сеансе. Эта функция доступна для приложений, настроенных для запуска в контексте безопасности интерактивного пользователя, также называемого режимом активации объекта RunAs Interactive User. Дополнительные сведения о контекстах безопасности см. в контексте безопасности клиента.

Распределенная com (DCOM) обеспечивает активацию объектов на уровне сеанса с помощью сеансовой. Другие моникеры, предоставляемые системой, включают моникеров, моникеров элементов, универсальных составных моникеров, анти-моникеров, указателейи url-моникеров.

Чтобы использовать моникер сеанса, приложение DCOM должно быть установлено для запуска от имени интерактивного пользователя. Это можно задать с помощью средства администрирования служб компонентов, просмотра свойств приложения DCOM и выбора интерактивного пользователя на вкладке Удостоверение. Дополнительные сведения о возможных рисках безопасности, связанных с настройкой приложения DCOM для запуска от имени интерактивного пользователя в среде служб удаленных рабочих столов, см. в разделе "Удостоверение приложения (COM)" документации COM в пакете SDK для платформы.

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

Чтобы создать моникер сеанса, необходимо создать идентификатор сеанса сеанса сеанса служб удаленных рабочих столов с моникером класса, который задает идентификатор класса сервера обработки.

Создание моникера сеанса

  1. Префикс отображаемого имени моникера класса с отображаемым именем моникера сеанса с помощью следующего синтаксиса:

    "Session:[digits]!clsid:[class id]"
    

    где цифры представляет идентификатор сеанса сеанса, на котором будет запущен процесс сервера, и где идентификатор класса представляет идентификатор класса сервера. Обратите внимание, что идентификатор сеанса — это базовый номер 10.

    Для компьютеров под управлением Windows XP или более поздних версий, используя следующий синтаксис, com отправляет активацию в текущий активный сеанс физической консоли, независимо от его идентификатора сеанса:

    "Session:Console!clsid:[class id]"
    
  2. После создания моникера сеанса можно передать результат функции MkParseDisplayName или функции MkParseDisplayName MkParseDisplayNameEx.

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

Пример кода, демонстрирующий активацию локального процесса сервера в указанном сеансе, см. в разделе Использование моникера сеанса.

Дополнительные сведения об активации объектов, предоставляемых системой моникерах и моникерах классов, см. в документации com в пакете SDK для платформы.

Заметка

Процессы, созданные в сеансах, имеют верхний предел размера блока среды. Это ограничение составляет около 4 КБ, но оно может быть больше или меньше в зависимости от того, какие другие сведения необходимы для создания процесса (например, имена файлов, каталоги и параметры для нового процесса).