Активация сеанса и сеанса с помощью Моникера сеанса
Активация между сеансами (также называемая активацией между сеансами) позволяет клиенту запускать (активировать) локальный процесс сервера в указанном сеансе. Эта функция доступна для приложений, настроенных для запуска в контексте безопасности интерактивного пользователя, также называемого режимом активации объекта RunAs Interactive User. Дополнительные сведения о контекстах безопасности см. в контексте безопасности клиента.
Распределенная com (DCOM) обеспечивает активацию объектов на уровне сеанса с помощью сеансовой. Другие моникеры, предоставляемые системой, включают моникеров, моникеров элементов, универсальных составных моникеров, анти-моникеров, указателейи url-моникеров.
Чтобы использовать моникер сеанса, приложение DCOM должно быть установлено для запуска от имени интерактивного пользователя. Это можно задать с помощью средства администрирования служб компонентов, просмотра свойств приложения DCOM и выбора интерактивного пользователя на вкладке Удостоверение. Дополнительные сведения о возможных рисках безопасности, связанных с настройкой приложения DCOM для запуска от имени интерактивного пользователя в среде служб удаленных рабочих столов, см. в разделе "Удостоверение приложения (COM)" документации COM в пакете SDK для платформы.
Если для запуска приложения выбран любой другой тип пользователя, моникер сеанса будет игнорироваться приложением. Моникер сеанса также игнорируется приложениями сервера COM+. Дополнительные сведения о других методах выбора типа пользователя для запуска приложения см. в документации com в пакете SDK для платформы.
Чтобы создать моникер сеанса, необходимо создать идентификатор сеанса сеанса сеанса служб удаленных рабочих столов с моникером класса, который задает идентификатор класса сервера обработки.
Создание моникера сеанса
Префикс отображаемого имени моникера класса с отображаемым именем моникера сеанса с помощью следующего синтаксиса:
"Session:[digits]!clsid:[class id]"
где цифры представляет идентификатор сеанса сеанса, на котором будет запущен процесс сервера, и где идентификатор класса представляет идентификатор класса сервера. Обратите внимание, что идентификатор сеанса — это базовый номер 10.
Для компьютеров под управлением Windows XP или более поздних версий, используя следующий синтаксис, com отправляет активацию в текущий активный сеанс физической консоли, независимо от его идентификатора сеанса:
"Session:Console!clsid:[class id]"
После создания моникера сеанса можно передать результат функции MkParseDisplayName или функции MkParseDisplayName MkParseDisplayNameEx.
Вы можете использовать моникер сеанса так же, как и любой другой моникер.
Пример кода, демонстрирующий активацию локального процесса сервера в указанном сеансе, см. в разделе Использование моникера сеанса.
Дополнительные сведения об активации объектов, предоставляемых системой моникерах и моникерах классов, см. в документации com в пакете SDK для платформы.
Заметка
Процессы, созданные в сеансах, имеют верхний предел размера блока среды. Это ограничение составляет около 4 КБ, но оно может быть больше или меньше в зависимости от того, какие другие сведения необходимы для создания процесса (например, имена файлов, каталоги и параметры для нового процесса).