创建一个dynamics 365 CRM online plugin (七) - plugin当中的Impersonation角色

时间:2023-03-09 07:49:17
创建一个dynamics 365 CRM online plugin (七) - plugin当中的Impersonation角色

我们之前创建的plugin都是使用default的 run in User's Context.

理解就是使用正在登陆的security context用户信息

创建一个dynamics 365 CRM online plugin (七) - plugin当中的Impersonation角色

那有个问题,如果当前用户的security role没有相应的权限访问功能,我们就要安排一个新的用户 e.g. admin来记录信息而非当前用户.

创建一个dynamics 365 CRM online plugin (七) - plugin当中的Impersonation角色

让我们在registration tool更新TaskCreate class之后再CRM中打开新建Contacts.

我们可以打开activities发现follow up 里用户更改为在plugin registration tool中更改的用户.

创建一个dynamics 365 CRM online plugin (七) - plugin当中的Impersonation角色

第二种方法,我们可以做impersonation 的地方是plugin 的代码当中

首先我们把run in user's context 改为Calling User

创建一个dynamics 365 CRM online plugin (七) - plugin当中的Impersonation角色

首先我们要先知道admin的GUID,知道GUID之后我们才可以创建一个新的OrganizationService.

            // This is for the impersonation
IOrganizationService adminService = serviceFactory.CreateOrganizationService(new Guid());

其次, 我们用创建好的adminService在try中做创建task.

// Inpersonation in Plugins
adminService.Create(taskRecord);

创建一个dynamics 365 CRM online plugin (七) - plugin当中的Impersonation角色