Безопасность программных компонентов
При использовании безопасности на основе ролей в приложении 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"), следует описать функциональные возможности, к которым имеют доступ только Теллеры. Также следует указать, требуется ли роль для защиты доступа ко всему компоненту.
См. также