共用方式為


外掛程式中的模擬

 

發行︰ 2017年1月

適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

模擬可用來代表 Microsoft Dynamics 365 系統使用者執行商務邏輯 (自訂程式碼),為該使用者提供所需的功能或服務。 任何在外掛程式內執行的商務邏輯 (包括 Web 服務方法呼叫和資料存取) 都會由所模擬使用者的安全性權限控管。

不是由沙箱或非同步服務執行的外掛程式會以 [CRMAppPool 屬性] 對話方塊的 [身分識別] 索引標籤上指定的安全性帳戶執行。 在 Internet Information Services (IIS) 管理員中的 [CRMAppPool] 應用程式集區上按一下滑鼠右鍵,然後按一下捷徑功能表中的 [屬性],就可以存取此對話方塊。 根據預設,CRMAppPool 會使用網路服務帳戶身分,但是系統管理員可以在安裝期間變更這項設定。 如果 CRMAppPool 身分識別變更為網路服務以外的系統帳戶,則必須將新的身分識別帳戶新增至 Active Directory 中的 PrivUserGroup 群組。其他資訊:TechNet:變更 Microsoft Dynamics CRM 服務帳戶或 AppPool 身分識別以取得詳細指示。

下面將討論可用來模擬使用者的兩種方法。

在外掛程式註冊時模擬

在外掛程式內模擬系統使用者的一種方法,是在外掛程式註冊期間指定模擬的使用者。 以程式設計方式註冊外掛程式時,如果 SdkMessageProcessingStep.ImpersonatingUserId 屬性設定為特定 Microsoft Dynamics 365 系統使用者,則外掛程式進行的 Web 服務呼叫會以該模擬的使用者的身分執行。 如果在外掛程式註冊期間 ImpersonatingUserId 設定為 nullGuid.Empty 這兩個值,則呼叫/登入的使用者或標準「系統」使用者會是模擬的使用者。

至於是使用呼叫/登入的使用者或「系統」使用者進行模擬,則取決於準銷售案源處理的要求,這就不在 SDK 文件的範圍內。 如需「系統」使用者的詳細資訊,請參閱下一個主題。

注意

當您使用 SDK 下載中提供的範例外掛程式註冊工具註冊外掛程式時,外掛程式叫用的服務方法預設會以呼叫或登入的使用者的帳戶執行,除非您在 [在使用者內容中執行] 下拉式功能表中選取不同的使用者。 如需工具範例程式碼的詳細資訊,請參閱 SDK 套件的 SDK\Tools\PluginRegistration 資料夾下的工具程式碼。下載 Microsoft Dynamics CRM SDK 套件。

在外掛程式執行時模擬

在外掛程式註冊期間定義的模擬,可以在執行階段於外掛程式中修改。 即使未在外掛程式註冊期間定義模擬,外掛程式程式碼仍然可以使用模擬。 下面的討論將指出在外掛程式中進行 Web 服務方法呼叫時,在模擬中扮演重要角色的屬性和方法。

平台會在執行期間透過 UserId 屬性將模擬的使用者 ID 傳遞至外掛程式。 此屬性可以具有三種不同的值之一,如下表中所示。

UserId 值

條件

啟始使用者或「系統」使用者

SdkMessageProcessingStep.ImpersonatingUserId 屬性在外掛程式註冊時設為 nullGuid.Empty

模擬的使用者

ImpersonatingUserId 屬性在外掛程式註冊時設定為有效的系統使用者 ID。

「系統」使用者

目前的準銷售案源是由平台執行,不是在服務方法呼叫的直接回應中執行。

執行內容的 InitiatingUserId 屬性包含呼叫最終造成外掛程式執行的服務方法的系統使用者 ID。

重要

對於離線執行的外掛程式,外掛程式建立的任何實體都是登入的使用者所擁有。 離線模式下不支援外掛程式中的模擬。

另請參閱

外掛程式開發
註冊和部署外掛程式
了解傳遞至外掛程式的資料內容
模擬另一位使用者

Microsoft Dynamics 365

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權