Безопасность программных компонентов

При использовании безопасности на основе ролей в приложении COM+, содержающем компонент, у вас есть доступ к программным функциям безопасности из компонента. Вы можете проверка членство в роли, чтобы определить, выполняются ли определенные разделы кода, вы можете получить доступ к информации безопасности с помощью объекта контекста вызова безопасности и определить, включена ли безопасность для текущего вызова. Все эти задачи можно выполнить с помощью ссылки на объект SecurityCallContext (для приложений Microsoft Visual Basic) или указатель на интерфейс ISecurityCallContext (для приложений C и Microsoft Visual C++).

Дополнительные сведения о программной безопасности на основе ролей см. в следующих разделах:

Олицетворение и функции безопасности COM

Если компонент используется в приложении COM+, которое не использует безопасность на основе ролей, программная роль проверка и сведения о контексте вызова безопасности недоступны. Однако вы можете использовать программные функции безопасности, предоставляемые COM. Дополнительные сведения см. в разделе "Безопасность в COM".

Хотя большинство функций безопасности, предоставляемых COM, нельзя вызывать CoInitializeSecurity из компонента, который является частью приложения COM+, так как CoInitializeSecurity вызывается суррогатом, в котором выполняется приложение COM+. Однако можно вызывать другие функции безопасности, такие как CoQueryClientBlanket, который получает сведения о клиенте.

В частности, если необходимо использовать удостоверение клиента для доступа к некоторым ресурсам, например доступ к файлу, защищенному дескриптором безопасности, или распространению удостоверения клиента через базу данных— вы можете выполнять олицетворение программным способом. Дополнительные сведения о том, когда и как это сделать, см. в разделе "Олицетворение клиента" и "Делегирование".

Тестирование функций безопасности

Если вы используете программную безопасность COM+ в компоненте, необходимо интегрировать компонент в приложение COM+, когда вы будете готовы протестировать функциональные возможности безопасности компонента. Если компонент, использующий программную безопасность COM+, выполняется без интеграции в приложение COM+, будут возникать исключения. Таким образом, если вы хотите убедиться, что такой компонент также может быть успешно интегрирован в приложение, которое не входит в среду COM+, необходимо убедиться, что эти исключения обрабатываются соответствующим образом.

Документирование требований к безопасности

Если вы пишете автономный компонент для приложений COM+, использующих безопасность на основе ролей, необходимо документировать компонент, чтобы безопасность была настроена соответствующим образом при интеграции компонента в приложение COM+. Например, следует определить роли, которые необходимо добавить, и объяснить, какие методы и интерфейсы должны назначаться каждой роли. Кроме того, если вызывается метод, например IsCallerInRole("Teller"), следует описать функциональные возможности, к которым имеют доступ только Теллеры. Также следует указать, требуется ли роль для защиты доступа ко всему компоненту.

Аутентификация клиента

Олицетворение клиента и делегирование

Безопасность приложений библиотеки

Безопасность приложений с несколькими уровнями

Администратор безопасности на основе ролей

Использование политики ограничения программного обеспечения в COM+