Segurança de componentes programáticos

Quando você usa a segurança baseada em função no aplicativo COM+ que contém o 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, pode acessar informações de segurança usando o objeto de contexto de chamada de segurança e pode 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, você não pode chamar CoInitializeSecurity de um componente que faz parte de um aplicativo COM+ porque 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ê precisar 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 para 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 de cliente.

Testando a funcionalidade de segurança

Se você usar a segurança programática COM+ em seu componente, deverá integrá-lo a um aplicativo COM+ quando estiver pronto para testar a funcionalidade de segurança do componente. Se um componente usando segurança programática COM+ for executado sem ser integrado a um aplicativo COM+, exceções serão lançadas. Portanto, se você quiser garantir que esse componente também seja capaz de ser integrado com êxito em 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, será necessário documentar o componente para que a segurança possa ser configurada adequadamente quando o componente estiver 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 de clientes

Segurança de aplicativos de biblioteca

Segurança de aplicativos de várias camadas

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

Usando a diretiva de restrição de software no COM+