Segurança de componente programático

Quando você usa a segurança baseada em função no aplicativo COM+ que contém seu componente, você tem acesso à funcionalidade de segurança programática de dentro do componente. Você pode verificar a associação de função para determinar se determinadas seções de código são executadas, você pode acessar informações de segurança usando o objeto de contexto de chamada de segurança e determinar se a segurança está habilitada para a chamada atual. Você pode executar todas essas tarefas usando uma referência a um objeto SecurityCallContext (para aplicativos do Microsoft Visual Basic) ou um ponteiro para a interface ISecurityCallContext (para aplicativos C e Microsoft Visual C++).

Para obter mais informações sobre segurança baseada em função programática, consulte os seguintes tópicos nesta seção:

Representação e recursos de segurança COM

Se o componente for usado em um aplicativo COM+ que não usa segurança baseada em função, a verificação de função programática e as informações de contexto de chamada de segurança não estarão disponíveis. No entanto, você pode usar a funcionalidade de segurança programática fornecida pelo COM. Para obter mais informações, consulte Segurança em COM.

Embora você possa usar a maior parte da funcionalidade de segurança fornecida pelo COM, não é possível chamar o CoInitializeSecurity de um componente que faz parte de um aplicativo COM+, pois o CoInitializeSecurity é chamado pelo substituto em que o aplicativo COM+ é executado. No entanto, você pode chamar outras funções de segurança, como CoQueryClientBlanket, que recupera informações sobre o cliente.

Em particular, quando você precisa usar a identidade do cliente para acessar algum recurso, por exemplo, acessar um arquivo protegido por um descritor de segurança ou propagar a identidade do cliente por meio de um banco de dados, você pode executar a representação programaticamente. Para obter mais detalhes sobre quando e como fazer isso, consulte Representação e Delegação do Cliente.

Testar a funcionalidade de segurança

Se você usar a segurança programática COM+ em seu componente, deverá integrar o componente a um aplicativo COM+ quando estiver pronto para testar a funcionalidade de segurança do componente. Se um componente que usa a segurança programática COM+ for executado sem ser integrado a um aplicativo COM+, as exceções serão geradas. Portanto, se você quiser garantir que esse componente também seja capaz de ser integrado com êxito a um aplicativo que não faz parte do ambiente COM+, você deve garantir que essas exceções sejam tratadas adequadamente.

Documentando requisitos de segurança

Se você estiver escrevendo um componente autônomo para aplicativos COM+ que usam segurança baseada em função, precisará documentar o componente para que a segurança possa ser configurada adequadamente quando o componente for integrado a um aplicativo COM+. Por exemplo, você deve identificar as funções que devem ser adicionadas e explicar a quais métodos e interfaces cada função deve ser atribuída. Além disso, se um método como IsCallerInRole("Teller") for chamado, você deverá descrever a funcionalidade à qual somente os Caixas têm acesso. Você também deve especificar se uma função é necessária para ajudar a proteger o acesso a todo o componente.

Autenticação de cliente

Representação e delegação do cliente

Segurança do Aplicativo de Biblioteca

Segurança de aplicativo de várias camadas

Administração de segurança baseada em função

Usando a Política de Restrição de Software no COM+