Compartir a través de


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 (active) 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 el 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 suministrados por el sistema incluyen monikers de , monikers de de elementos, monikers compuestos genéricos , anti-monikers, puntero monikersy url monikers.

Para poder usar el moniker de sesión, la aplicación DCOM debe establecerse para que se ejecute como usuario interactivo. Esto se puede establecer mediante la herramienta Administración de servicios de componentes, ver las propiedades de la aplicación DCOM y seleccionar El usuario interactivo en la pestaña identidad de. 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 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 de plataforma (SDK).

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 de moniker de sesión

  1. Prefijo el 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 dígitos representa el identificador de sesión de la sesión en la que se iniciará el proceso de servidor y dónde identificador 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 versiones posteriores, el uso de la sintaxis siguiente 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 ver un ejemplo de código que muestra cómo activar un proceso de servidor local en una sesión especificada, consulte Using a Session Moniker.

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 com en Platform SDK.

Nota

Los procesos que se crean 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 la información necesaria para crear el proceso (por ejemplo, nombres de archivo, directorios y parámetros para el nuevo proceso).