Clave appID

Agrupa las opciones de configuración de uno o varios objetos DCOM en una ubicación centralizada del Registro. Los objetos DCOM hospedados por el mismo ejecutable se agrupan en un AppID para simplificar la administración de las opciones de configuración y seguridad comunes.

Clave del Registro

\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID{AppID_GUID}

Valor del Registro Descripción
AccessPermission Describe la lista de Access Control (ACL) de las entidades de seguridad que pueden acceder a instancias de esta clase. Esta ACL solo la usan las aplicaciones que no llaman a CoInitializeSecurity.
ActivateAtStorage Configura el cliente para crear instancias de objetos en el mismo equipo que el estado persistente que están usando o desde el que se inicializan.
Appid Identifica el GUID de AppID que corresponde al ejecutable con nombre.
AppIDFlags Configura cómo se iniciará o enlazará un servidor COM configurado para que se ejecute como "Usuario interactivo" o enlazado a un cliente en un escritorio no predeterminado.
AuthenticationLevel Establece el nivel de autenticación para las aplicaciones que no llaman a CoInitializeSecurity o para las aplicaciones que llaman a CoInitializeSecurity y especifican un AppID.
DllSurrogate Permite que los servidores DLL se ejecuten en un proceso suplente. Si se especifica una cadena vacía, se utiliza el suplente proporcionado por el sistema; de lo contrario, el valor especifica la ruta de acceso del suplente que se va a usar.
DllSurrogateExecutable Permite que los servidores DLL se ejecuten en un proceso suplente personalizado, junto con el valor del Registro DllSurrogate .
Puntos de conexión Configura una aplicación COM para usar un número de puerto TCP especificado para las comunicaciones DCOM.
LaunchPermission Describe la lista de Access Control (ACL) de las entidades de seguridad que pueden iniciar nuevos servidores para esta clase.
LoadUserSettings Determina si COM cargará el perfil de usuario para los servidores COM que se ejecutan como la identidad de aplicación de inicio del usuario.
LocalService Instala un objeto como aplicación de servicio.
PreferredServerBitness Establece la arquitectura preferida, de 32 o 64 bits, para este servidor COM.
RemoteServerName Configura el cliente para solicitar que el objeto se ejecute en un equipo determinado cada vez que se llame a una función de activación para la que no se especifica una estructura COSERVERINFO .
ROTFlags Controla el registro de un servidor COM en la tabla de objetos en ejecución (ROT).
RunAs Configura una clase para que se ejecute en una cuenta de usuario específica cuando se activa mediante un cliente remoto sin escribirse como una aplicación de servicio.
ServiceParameters Especifica los parámetros de la línea de comandos que se van a pasar a un objeto instalado para su uso por COM a través del valor del Registro LocalService .
SRPTrustLevel Establece el nivel de confianza de la directiva de restricción de software (SRP) para las aplicaciones.

 

Comentarios

Los AppID se asignan a archivos ejecutables y clases mediante dos mecanismos diferentes:

  • Con un identificador único global (GUID) de 128 bits que identifica la clave AppID . Una clase indica su AppID correspondiente en la clave CLSID en un valor con nombre "AppID". Esta asignación se usa durante la activación.
  • Con un valor con nombre que indica un nombre ejecutable (como "MYOLDAPP.EXE"). Este valor con nombre es de tipo REG_SZ y contiene la representación de cadena del AppID asociado al ejecutable. Esta asignación se usa para obtener los permisos de acceso predeterminados y el nivel de autenticación.

La clave HKEY_LOCAL_MACHINE\SOFTWARE\Classes corresponde a la clave HKEY_CLASSES_ROOT , que se conservaba por compatibilidad con versiones anteriores de COM.

En el caso de los servidores COM, la asignación suele generarse y escribirse en el Registro durante el proceso de registro o al ejecutar dcomcnfg.exe. Sin embargo, los clientes COM que quieran establecer la seguridad mediante la clave AppID deben crear las claves del Registro adecuadas y especificar la asignación necesaria mediante una llamada a las funciones del Registro o mediante Regedit.exe. A continuación, se pueden establecer valores como AccessPermission o AuthenticationLevel para el cliente. Por ejemplo, supongamos que el nombre del archivo ejecutable para el proceso de cliente es "YourClient.exe" y quiere establecer el nivel de autenticación en "None". Usaría Guidgen.exe o Uuidgen.exe para crear el GUID que es appID para el ejecutable. A continuación, establecería valores en el Registro como se muestra en el ejemplo siguiente, donde 00000001 representa un nivel de autenticación de "None":

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
   {MyGuid}
      AuthenticationLevel = 00000001
   MyClient.exe
      AppID = {MyGUID}