Определение включения безопасности на основе ролей

Используя метод ISecurityCallContext::IsSecurityEnabled , доступный из объекта контекста вызова безопасности, можно определить, включена ли безопасность для текущего объекта. Прежде чем использовать ISecurityCallContext::IsCallerInRole, необходимо вызвать IsSecurityEnabled проверка, так как IsCallerInRole возвращает значение True, если безопасность не включена.

Разработчики Microsoft Visual Basic вызывают GetSecurityCallContext, чтобы получить ссылку на объект SecurityCallContext, а затем вызвать IsSecurityEnabled, как показано в следующем примере:

Dim objSecCallCtx As SecurityCallContext
Dim boolSecEn As Boolean
Set objSecCallCtx = GetSecurityCallContext()
boolSecEn = objSecCallCtx.IsSecurityEnabled()
 

Разработчики Microsoft Visual C++ могут вызывать ISecurityCallContext::IsSecurityEnabled, вызвав CoGetCallContext, чтобы получить указатель на ISecurityCallContext, а затем вызвать IsSecurityEnabled. Ниже приведен краткий пример.

ISecurityCallContext* pSecCtx;
VARIANT_BOOL bIsEnabled;

HRESULT hr1 = CoGetCallContext(IID_ISecurityCallContext, (void**)&pSecCtx);
if (FAILED(hr1)) throw(hr1);
if (NULL == pSecCtx) {
    // Display error message.
    return E_FAIL;
}

HRESULT hr2 = pSecCtx->IsSecurityEnabled(&bIsEnabled);
return hr2;

Хотя предпочтительный способ вызова IsSecurityEnabled использует объект контекста вызова безопасности, можно также вызвать IsSecurityEnabled через контекст объекта. (См. раздел ObjectContext или IObjectContext для получения дополнительных сведений.)

Доступ к сведениям о контексте вызова безопасности

Проверка членства в роли

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