ObjectContext::IsCallerInRole 方法 (comsvcs.h)

指出物件的直接呼叫端是否直接或屬於群組) (指定角色。

語法

HRESULT IsCallerInRole(
  [in]  BSTR         bstrRole,
  [out] VARIANT_BOOL *pbInRole
);

參數

[in] bstrRole

角色的名稱。

[out] pbInRole

如果呼叫端位於指定的角色,則為TRUE;否則為 FALSE。 如果未啟用安全性,此參數也會設定為 TRUE

傳回值

這個方法可以傳回標準傳回值E_INVALIDARG、E_OUTOFMEMORY和E_FAIL,以及下列值。

傳回碼 描述
S_OK
bstrRole 參數中指定的角色是辨識的角色,而 pbIsInRole 參數中傳回的布爾結果會指出呼叫端是否在該角色中。
CONTEXT_E_ROLENOTFOUND
bstrRole 參數中指定的角色不存在。
E_UNEXPECTED
已發生未預期的錯誤。 如果某個物件將其 ObjectContext 指標傳遞至另一個物件,而另一個物件會使用此指標呼叫 IsCallerInRole ,就會發生這種情況。 ObjectContext 指標在最初取得對象的內容之外無效。

備註

使用這個方法來判斷目前執行之方法的直接呼叫端是否與特定角色相關聯。 角色是符號名稱,代表特定 COM+ 應用程式中所有元件具有特定訪問許可權的使用者或使用者群組。 開發人員會在建立元件時定義角色,並在部署時間對應至個別使用者或群組。

IsCallerInRole 僅適用於目前執行中方法的直接呼叫端。 (直接呼叫端是呼叫至目前伺服器進程的進程。它可以是基底用戶端進程或伺服器進程。) IsCallerInRole 不適用於起始目前方法呼叫的呼叫序列的進程,或是該序列中任何其他呼叫端。

由於 IsCallerInRole 會在叫用它的物件在客戶端的進程中執行時傳回 TRUE ,因此最好先呼叫 IsSecurityEnabled ,再呼叫 IsCallerInRole。 如果未啟用安全性, IsCallerInRole 將不會傳回精確的結果。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 comsvcs.h

另請參閱

ObjectContext