Bestimmen, ob Role-Based Sicherheit aktiviert ist

Mithilfe der ISecurityCallContext::IsSecurityEnabled-Methode , die über das Sicherheitsaufrufkontextobjekt verfügbar ist, können Sie bestimmen, ob die Sicherheit für das aktuelle Objekt aktiviert ist. Sie sollten IsSecurityEnabled aufrufen, bevor Sie ISecurityCallContext::IsCallerInRole verwenden, um die Rollenmitgliedschaft zu überprüfen, da IsCallerInRole True zurückgibt, wenn die Sicherheit nicht aktiviert ist.

Microsoft Visual Basic-Entwickler rufen GetSecurityCallContext auf, um einen Verweis auf ein SecurityCallContext-Objekt zu erhalten, und rufen dann IsSecurityEnabled auf, wie im folgenden Beispiel gezeigt:

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

Microsoft Visual C++ Entwickler können ISecurityCallContext::IsSecurityEnabled aufrufen, indem Sie CoGetCallContext aufrufen, um einen Zeiger auf ISecurityCallContext und dann IsSecurityEnabled aufzurufen. Es folgt ein kurzes Beispiel:

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;

Obwohl die bevorzugte Methode zum Aufrufen von IsSecurityEnabled die Verwendung des Sicherheitsaufrufkontextobjekts ist, können Sie IsSecurityEnabled auch über den Objektkontext aufrufen. (Weitere Informationen finden Sie unter ObjectContext oder IObjectContext .)

Zugreifen auf Sicherheitsaufrufkontextinformationen

Überprüfen der Rollenmitgliedschaft

Programmgesteuerte Komponentensicherheit