Compartilhar via


Determinando se a segurança baseada em função está habilitada

Usando o método ISecurityCallContext::IsSecurityEnabled disponível no objeto de contexto de chamada de segurança, você pode determinar se a segurança está habilitada para o objeto atual. Você deve chamar IsSecurityEnabled antes de usar ISecurityCallContext::IsCallerInRole para verificar a associação de função porque IsCallerInRole retorna True se a segurança não estiver habilitada.

Os desenvolvedores do Microsoft Visual Basic chamam GetSecurityCallContext para obter uma referência a um objeto SecurityCallContext e, em seguida, chamam IsSecurityEnabled, conforme mostrado no exemplo a seguir:

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

Os desenvolvedores do Microsoft Visual C++ podem chamar ISecurityCallContext::IsSecurityEnabled chamando CoGetCallContext para obter um ponteiro para ISecurityCallContext e, em seguida, chamando IsSecurityEnabled. Segue um breve exemplo:

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;

Embora a maneira preferencial de chamar IsSecurityEnabled seja usando o objeto de contexto de chamada de segurança, você também pode chamar IsSecurityEnabled por meio do contexto do objeto. (Veja ObjectContext ou IObjectContext para obter mais informações.)

Acessando informações de contexto de chamada de segurança

Verificando a associação de função

Segurança de componentes programáticos