Activación de sesión a sesión con un Moniker de sesión

La activación de sesión a sesión (también denominada activación entre sesiones) permite que un proceso de cliente inicie (activar) un proceso de servidor local en una sesión especificada. Esta característica está disponible para las aplicaciones configuradas para ejecutarse en el contexto de seguridad del usuario interactivo, también conocido como modo de activación de objetos "RunAs Interactive User". Para obtener más información sobre los contextos de seguridad, vea El contexto de seguridad del cliente.

Com distribuido (DCOM) habilita la activación de objetos por sesión mediante un moniker de sesión proporcionado por el sistema. Otros monikers proporcionados por el sistema incluyen monikers de archivos, monikers de elementos, monikers compuestos genéricos, anti-monikers, puntero monikers y monikersurl.

Para poder usar el moniker de sesión, la aplicación DCOM debe establecerse para ejecutarse como el usuario interactivo. Esto se puede establecer mediante la herramienta Administrador de servicios de componentes, ver las propiedades de la aplicación DCOM y seleccionar El usuario interactivo en la pestaña Identidad . Para obtener más información sobre los posibles riesgos de seguridad asociados a la configuración de una aplicación DCOM para que se ejecute como el usuario interactivo en un entorno de Servicios de Escritorio remoto, vea la sección "Identidad de aplicación (COM)" de la documentación com en el Kit de desarrollo de software (SDK) de plataforma.

Si se selecciona cualquier otro tipo de usuario para ejecutar la aplicación, la aplicación omitirá el moniker de sesión. Las aplicaciones de servidor COM+ también omiten el moniker de sesión. Para obtener más información sobre otros métodos para seleccionar el tipo de usuario para ejecutar la aplicación, consulte la documentación com del SDK de plataforma.

Para crear un moniker de sesión, debe redactar el identificador de sesión de la sesión de Servicios de Escritorio remoto con un moniker de clase que especifique el identificador de clase del servidor de procesos.

Para crear un moniker de sesión

  1. Prefijo del nombre para mostrar del moniker de clase con el nombre para mostrar del moniker de sesión mediante la sintaxis siguiente:

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

    donde digits representa el identificador de sesión de la sesión en la que se iniciará el proceso de servidor y donde id . de clase representa el identificador de clase del servidor. Tenga en cuenta que el identificador de sesión es un número base-10.

    En el caso de los equipos que ejecutan Windows XP o posterior, el uso de la siguiente sintaxis dará como resultado que COM envíe la activación a la sesión de consola física activa actualmente, sea cual sea su identificador de sesión:

    "Session:Console!clsid:[class id]"
    
  2. Después de crear el moniker de sesión, puede pasar el resultado a la función MkParseDisplayName o a la función MkParseDisplayNameEx .

Puede usar un moniker de sesión de la misma manera que usaría cualquier otro moniker.

Para obtener un ejemplo de código que muestra cómo activar un proceso de servidor local en una sesión especificada, consulte Uso de un Moniker de sesión.

Para obtener más información sobre la activación de objetos, monikers proporcionados por el sistema y monikers de clase, consulte la documentación de COM en platform SDK.

Nota

Los procesos creados entre sesiones tienen un límite superior en el tamaño del bloque de entorno. Este límite es de aproximadamente 4 KB, pero puede ser mayor o menor en función de qué otra información se necesite para crear el proceso (por ejemplo, nombres de archivo, directorios y parámetros para el nuevo proceso).