安全边界

仅在应用程序边界检查安全性。 也就是说,对于同一应用程序中的两个组件,当一个组件调用另一个组件时,不会执行任何安全检查。 但是,如果两个应用程序共享同一进程,并且其中一个应用程序中的组件调用另一个应用软件中的组件,则会进行安全检查,因为会跨越应用程序边界。 同样,如果两个应用程序位于不同的服务器进程中,并且第一个应用程序中的组件调用第二个应用程序的组件,则会进行安全检查。

因此,如果有两个组件,并且希望在其中一个组件调用另一个组件时进行安全检查,则需要将这些组件放在单独的 COM+ 应用程序中。

由于 COM+ 库应用程序由其他进程托管,因此库应用程序与托管进程之间存在安全边界。 此外,库应用程序不控制进程级安全性,这会影响需要为其配置安全性的方式。 有关详细信息,请参阅库应用程序安全性

根据实例化配置的组件时创建的对象上下文的安全属性来确定是否必须对组件的调用执行安全检查。 有关详细信息,请参阅安全上下文属性

组件级访问检查

对于 COM+ 服务器应用程序,可以选择在组件级别或进程级别强制实施访问检查。

选择组件级访问检查时,可以启用精细的角色分配。 可以为组件、接口和方法分配角色,并实现明确的授权策略。 这将是使用基于角色的安全性的应用程序的标准配置。

对于 COM+ 库应用程序,如果要使用角色,则必须选择组件级安全性。 库应用程序无法使用进程级安全性。

如果使用基于角色的编程安全性,则应选择组件级访问检查。 仅当启用组件级安全性时,安全调用上下文信息才可用。 有关详细信息,请参阅安全调用上下文信息

此外,选择组件级访问检查时,安全属性将包含在对象上下文中。 这意味着安全配置可以在激活对象的方式中发挥作用。 有关详细信息,请参阅安全上下文属性

进程级访问检查

进程级检查仅适用于应用程序边界。 也就是说,为整个 COM+ 应用程序定义的角色将决定谁有权访问应用程序内的任何资源。 不会应用更精细的角色分配。 从本质上讲,这些角色用于创建一个安全描述符,根据该描述符验证对应用程序组件的任何调用。 在这种情况下,你可能不希望构建具有多个角色的详细授权策略。 应用程序将使用单个安全描述符。

对于 COM+ 库应用程序,不能选择进程级访问检查。 库应用程序将在客户端的进程中托管运行,因此不会控制进程级安全性。 有关详细信息,请参阅库应用程序安全性

启用进程级访问检查后,安全调用上下文信息不可用。 这意味着,当仅使用进程级安全性时,无法执行编程安全性。 有关详细信息,请参阅安全调用上下文信息

此外,安全属性不包含在对象上下文中。 这意味着,当仅使用进程级访问检查时,安全配置将永远不会在对象的激活方式中发挥作用。 有关详细信息,请参阅安全上下文属性

有效地设计角色

安全调用上下文信息

安全上下文属性

使用角色进行客户端授权