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.)
Tópicos relacionados