AppID 的英文全称是 Application Identifier AppID(应用程序标识符)GUID(全局唯一标识符)

AppID(应用程序标识符)的概念起源于 Microsoft 的 Component Object Model(COM)技术。在 COM 中,每个组件都有一个唯一的标识符,称为 Class ID(CLSID),用于标识该组件的类。而 AppID 则是针对 COM 组件的另一种标识符,它用来标识和控制 COM 组件的行为方式、安全设置、并发性等方面。

AppID 的引入主要是为了解决以下几个问题:

  1. 控制权限: AppID 可以用于指定 COM 组件的访问权限,例如确定哪些用户或进程可以访问该组件。
  2. 启动策略: AppID 可以定义 COM 组件的启动策略,包括启动方式、运行时环境等。
  3. 并发性设置: AppID 可以配置 COM 组件的并发性行为,例如确定多个客户端如何与组件进行交互。

AppID 的引入主要是为了解决以下几个问题

  1. 组件的唯一标识

    • 在 COM 中,存在大量的可重用组件。为了确保每个组件都能够被唯一标识和定位,引入了 AppID 的概念。每个组件都可以与一个唯一的 AppID 关联,从而确保在系统中能够准确地找到和使用特定的组件。
  2. 权限控制和安全性

    • COM 组件通常需要进行权限控制,以限制对组件的访问和操作。通过为每个组件分配独立的 AppID,并配置相应的安全设置,可以实现精细的权限控制。这样可以确保只有授权的用户或进程才能调用和使用特定的组件,提高系统的安全性。
  3. 启动策略和运行时环境

    • 不同的 COM 组件可能具有不同的启动策略和运行时环境要求。例如,某些组件需要以单例模式运行,而其他组件可能需要支持多线程操作。通过为每个组件指定独立的 AppID,可以灵活配置组件的启动策略和运行时环境,确保组件能够按照预期的方式启动和运行。
  4. 版本管理

    • COM 支持多个版本的同一个组件同时存在于系统中。通过为每个版本分配不同的 AppID,可以实现版本管理,确保不同版本的组件能够并存,并避免版本冲突。
  5. 并发性和线程模型

    • COM 组件需要考虑多线程环境下的并发访问。通过为每个组件指定特定的 AppID,并配置相应的并发性设置,可以控制组件在多线程环境中的行为,确保并发操作的正确性和稳定性。
  6. 注册表管理

    • AppID 可以用于注册表管理,帮助系统跟踪和识别 COM 组件。通过在注册表中配置 AppID,可以方便地查找和管理组件的信息,包括组件的 CLSID(Class Identifier)、路径、安全设置等。
  7. 跨进程通信

    • 在某些情况下,需要实现跨进程的组件通信。AppID 可以帮助识别和管理跨进程通信所涉及的组件,确保不同进程间能够正确地交互和通信。
  8. 运行时环境约束

    • 某些 COM 组件可能对运行时环境有特定的约束要求,如要求在特定的操作系统版本下运行,或者依赖于特定的系统配置。通过为组件指定特定的 AppID,并配置相应的约束条件,可以确保组件在符合条件的环境下运行,提高组件的稳定性和可靠性。
  9. 分布式系统支持

    • 在分布式系统中,可能涉及多台计算机上的 COM 组件进行协作。通过为每个组件分配独立的 AppID,可以在不同的计算机上唯一标识和管理组件,实现分布式系统的支持和管理。
  10. 监控和调试

    • 使用 AppID 可以更好地监控和调试 COM 组件的运行情况。通过查看与特定 AppID 关联的日志和状态信息,可以追踪组件的调用情况,定位问题并进行调试。
  11. 跨平台兼容性

    • 通过为每个组件分配独立的 AppID,可以更好地实现跨平台的兼容性。不同平台上的组件可以使用不同的 AppID,从而避免平台之间的冲突,确保组件能够在不同平台上稳定运行。
  12. 动态组件切换

    • 在某些场景下,需要动态地切换或替换组件。通过为每个组件指定独立的 AppID,可以更灵活地进行组件的动态切换和替换,而无需修改调用组件的代码。
  13. 管理和维护

    • 使用 AppID 可以更好地管理和维护系统中的组件。可以通过 AppID 来跟踪和记录组件的使用情况、性能指标等信息,帮助系统管理员进行组件的管理和维护工作。
  14. 扩展性和模块化

    • 通过为每个组件分配独立的 AppID,可以更好地实现系统的扩展性和模块化。新的组件可以被分配新的 AppID,从而与现有组件相互独立,便于系统的扩展和升级。
  15. 第三方组件集成

    • 当系统需要集成第三方组件时,可以通过为第三方组件分配独立的 AppID,确保第三方组件与系统内部组件的正确集成和操作,同时能够进行权限控制和安全管理。
  16.  

通过为每个 COM 组件指定一个唯一的 AppID,可以更精细地控制和管理组件的行为,确保其在系统中的安全性和稳定性。AppID 的引入使得开发人员和系统管理员能够更好地管理和配置 COM 组件,提高了系统的可靠性和安全性。因此,AppID 的概念是为了完善 COM 技术体系,使得组件之间的交互更加可控和安全。


AppID(应用程序标识符)作为 Component Object Model(COM)技术的一部分,经历了几个发展阶段,主要包括以下几个阶段:

  1. 初期阶段:

    • 在 COM 技术刚开始发展的阶段,AppID 主要用于标识和控制 COM 组件的行为方式和权限设置。开发人员可以通过为每个组件指定一个唯一的 AppID 来定义组件的安全性、启动策略和并发性等方面的设置。
  2. Windows NT 4.0 阶段:

    • 随着 Windows NT 4.0 的发布,Microsoft 引入了更多关于安全性和权限控制的功能,AppID 也得到了进一步的加强和扩展。此阶段中,AppID 的应用范围扩大,可以用于更细粒度的权限控制和安全配置。
  3. Windows 2000 阶段:

    • 在 Windows 2000 发布后,AppID 的功能得到进一步完善和优化。系统管理员可以通过配置注册表中的 AppID 来管理和控制 COM 组件的行为,确保系统的稳定性和安全性。
  4. 后续阶段:

    • 随着操作系统和 COM 技术的不断发展,AppID 的功能和应用也在不断演变和完善。在当前阶段,AppID 仍然是 COM 组件管理中重要的一部分,用于提供更加精细化的权限控制和配置管理。

 AppID 作为 COM 技术的重要组成部分,在不同阶段经历了功能的扩展和优化,以适应不断变化的系统需求和安全标准。通过不断的发展和改进,AppID 已经成为管理和控制 COM 组件行为的重要工具之一,为系统的稳定性和安全性提供了有力支持。


 

AppID(应用程序标识符)在 Component Object Model(COM)技术中具有多种应用场景,主要包括以下几个方面:

  1. 权限控制

    • 通过为每个 COM 组件指定一个唯一的 AppID,可以实现对组件的访问权限控制。系统管理员可以配置每个 AppID 的安全设置,包括确定哪些用户或进程有权访问该组件,从而确保系统的安全性。
  2. 启动策略

    • AppID 可以定义 COM 组件的启动策略,包括指定组件如何被实例化和激活。这包括设置组件的运行时环境、线程模型等,以确保组件能够按照预期的方式启动和运行。
  3. 并发性设置

    • AppID 可用于配置 COM 组件的并发性行为,确定多个客户端如何与组件进行交互。通过设置 AppID,可以控制组件的线程模型、并发访问限制等,以确保组件在多线程环境下能够正确运行。
  4. 版本管理

    • 在 COM 中,不同版本的同一个组件可以使用不同的 AppID 进行标识,从而实现版本管理。通过为不同版本的组件分配不同的 AppID,可以同时在系统中运行多个版本的组件,而不会产生冲突。
  5. 安全性增强

    • 通过结合使用 AppID 和其他安全机制(如注册表设置、权限管理等),可以增强 COM 组件的安全性。AppID 可以作为安全配置的一部分,帮助确保组件在系统中受到适当的保护。

 AppID 在 COM 技术中扮演着重要的角色,用于管理和控制 COM 组件的行为方式、安全设置和权限控制。通过合理配置和使用 AppID,可以确保系统中的 COM 组件能够安全、稳定地运行,并有效地与其他组件进行交互。


AppID 的英文全称是 Application Identifier。

在注册表中,HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{AppID_GUID} 是用来存储应用程序标识符(AppID)及其相关信息的地方。

  • AppID(应用程序标识符):AppID 是用于标识和控制COM组件(Component Object Model 组件)的一种机制。每个COM组件都有一个唯一的AppID,可以帮助系统识别和管理这些组件。AppID 可以用来指定权限、启动方式、并发设置等与组件相关的配置信息。

  • GUID(全局唯一标识符):GUID 是一种由算法生成的唯一标识符,用于确保在系统中的所有实体(如组件、对象、接口等)都具有唯一的标识。在注册表中,使用 GUID 来作为键名或值名可以确保其在整个系统中是唯一的,避免冲突和重复。

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{AppID_GUID} 中,{AppID_GUID} 表示一个特定的 AppID 的 GUID。通过这个注册表路径,系统可以根据 AppID 来查找和管理与之相关的 COM 组件的配置信息,确保这些组件能够正常运行并按照预期的方式工作。

 AppID 用于标识和控制 COM 组件,而 GUID 则用来确保在系统中的唯一性,以便系统能够准确识别和管理各个组件及其相关信息。

 

AppID 密钥 - Win32 apps | Microsoft Learn

 

AppID 通过两种不同的机制映射到可执行文件和类:

  • 使用可识别 AppID 密钥的 128 位全球唯一标识符 (GUID)。 一个类会在 CLSID 键下的命名值“AppID”中显示其对应的 AppID。 此映射在激活期间使用。
  • 使用表示可执行程序名称的命名值(如“MYOLDAPP.EXE”)。 此命名值的类型为 REG_SZ,包含与可执行文件相关联的 AppID 的字符串表示。 此映射用于获取默认访问权限和身份验证级别。

 

posted @ 2024-03-09 04:15  suv789  阅读(557)  评论(0)    收藏  举报