判斷是否啟用角色型安全性

藉由使用可從安全性呼叫內容物件取得的 ISecurityCallContext::IsSecurityEnabled 方法,您可以判斷是否為目前對象啟用安全性。 您應該先呼叫 IsSecurityEnabled,再使用 ISecurityCallContext::IsCallerInRole 檢查角色成員資格,因為如果未啟用安全性,IsCallerInRole 會傳回 True。

Microsoft Visual Basic 開發人員呼叫 GetSecurityCallContext 以取得 SecurityCallContext 對象的參考,然後呼叫 IsSecurityEnabled,如下列範例所示:

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

Microsoft Visual C++ 開發人員可以呼叫 ISecurityCallContext::IsSecurityEnabled,方法是呼叫 CoGetCallContext 以取得 ISecurityCallContext 的指標,然後呼叫 IsSecurityEnabled。 簡短的範例如下:

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;

雖然呼叫 IsSecurityEnabled 的慣用方式是使用安全性呼叫內容物件,但您也可以透過對象內容呼叫 IsSecurityEnabled。 (請參閱 如需詳細資訊,ObjectContextIObjectContext 。)

存取安全性呼叫內容資訊

檢查角色成員資格

程序設計元件安全性