Determinar si la seguridad de Role-Based está habilitada
Mediante el uso del método ISecurityCallContext::IsSecurityEnabled disponible en el objeto de contexto de llamada de seguridad, puede determinar si la seguridad está habilitada para el objeto actual. Debe llamar a IsSecurityEnabled antes de usar ISecurityCallContext::IsCallerInRole para comprobar la pertenencia a roles porque IsCallerInRole devuelve True si la seguridad no está habilitada.
Los desarrolladores de Microsoft Visual Basic llaman a GetSecurityCallContext para obtener una referencia a un objeto SecurityCallContext y, a continuación, llaman a IsSecurityEnabled, como se muestra en el ejemplo siguiente:
Dim objSecCallCtx As SecurityCallContext
Dim boolSecEn As Boolean
Set objSecCallCtx = GetSecurityCallContext()
boolSecEn = objSecCallCtx.IsSecurityEnabled()
Microsoft Visual C++ desarrolladores pueden llamar a ISecurityCallContext::IsSecurityEnabled llamando a CoGetCallContext para obtener un puntero a ISecurityCallContext y, a continuación, llamar a IsSecurityEnabled. A continuación se muestra un breve ejemplo:
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;
Aunque la manera preferida de llamar a IsSecurityEnabled es mediante el uso del objeto de contexto de llamada de seguridad, también puede llamar a IsSecurityEnabled a través del contexto del objeto. (Vea ObjectContext o IObjectContext para obtener más información).
Temas relacionados