Determinando se a segurança Role-Based está habilitada
Usando o métodoISecurityCallContext::IsSecurityEnableddisponível no objeto de contexto da 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 à 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 objetoSecurityCallContexte, 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-se 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 preferida de chamar IsSecurityEnabled seja usando o objeto de contexto de chamada de segurança, você também pode chamar IsSecurityEnabled através do contexto do objeto. (Consulte ObjectContext ou IObjectContext para obter mais informações.)
Tópicos relacionados