共用方式為


SecurityProperty::GetOriginalCallerName 方法 (comsvcs.h)

擷取與起始呼叫序列之基底進程相關聯的使用者名稱,從中起始呼叫至目前物件的順序。

語法

HRESULT GetOriginalCallerName(
  [out] BSTR *bstrUserName
);

參數

[out] bstrUserName

與起始呼叫至目前物件之呼叫序列之基底進程相關聯的使用者名稱參考。

傳回值

這個方法可以傳回標準傳回值E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL和S_OK。

備註

一般而言,物件的原始呼叫端與其原始建立者的程式相同。 原始呼叫端和原始建立者的唯一情況是原始建立者將參考傳遞給另一個進程,而另一個進程會起始呼叫順序。

下列案例說明此方法的功能:

  1. 以使用者 A 身分在伺服器 A 上執行的基底進程 1,會在伺服器 B 上建立物件 X,以使用者 B 身分執行。
  2. 然後,基底進程 1 會將物件 X 上的參考傳遞至基底進程 2,以使用者 D 身分在伺服器 D 上執行。
  3. 基底進程 2 會使用該參考來呼叫物件 X。
  4. 物件 X 接著會呼叫物件 Y,並在伺服器 C 上執行。如果物件 Y 接著呼叫 GetOriginalCallerName,則會傳回使用者 D 的名稱,而不是最初建立物件的使用者 A。
如果鏈結中的任何物件是由 ObjectCoNtext::CreateInstance 或ITransactionCoNtext::CreateInstance以外的其他方法所建立,原始呼叫端的路徑就會中斷。 例如,如果基底進程 1 使用 CoCreateInstance 來建立物件 X,當物件 Y 呼叫 GetOriginalCallerName時,其傳回的名稱會是使用者 B 的名稱,而不是使用者 D。這是因為呼叫順序是透過物件的內容追蹤回,而 COM+ 只能針對使用 ObjectCoNtext::CreateInstanceITransactionCoNtext::CreateInstance建立的物件建立內容。

規格需求

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

另請參閱

SecurityProperty