共用方式為


ISecurityCallContext::IsCallerInRole 方法 (comsvcs.h)

判斷直接呼叫端是否在指定的角色中。

語法

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

參數

[in] bstrRole

角色的名稱。

[out] pfInRole

如果呼叫端位於指定的角色,則為TRUE;如果不是,則為 FALSE。 如果未為應用程式定義指定的角色,則會傳回 FALSE 。 如果未啟用角色型安全性,此參數會設定為 TRUE

傳回值

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

傳回碼 描述
S_OK
bstrRole 參數中指定的角色是可辨識的角色,而 pfIsInRole 參數中傳回的布爾值結果會指出呼叫端是否在該角色中。
CONTEXT_E_ROLENOTFOUND
bstrRole 參數中指定的角色不存在。

備註

使用此方法可限制存取不應該執行的程式代碼區段,除非呼叫端是指定角色的成員。 Windows 群組和使用者會使用元件服務管理工具指派給應用程式的角色。 如需角色的詳細資訊,請參閱 角色型安全性

IsCallerInRole 僅適用於目前執行中方法的直接呼叫端。 IsCallerInRole 不適用於呼叫目前方法的呼叫序列中的任何其他呼叫端。 不過,您可以使用 get_Item 屬性方法來取得序列中其他呼叫端的相關信息,以取得安全性呼叫內容物件的 Callers 屬性。

由於未啟用角色型安全性時 IsCallerInRoleTRUE,因此在呼叫 IsCallerInRole 之前呼叫 IsSecurityEnabled 是個不錯的主意,以確保 IsCallerInRole 會傳回有用的資訊。

規格需求

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

另請參閱

ISecurityCallContext

程序設計元件安全性

以角色為基礎的安全性