我在动态crm中有一个用户列表,我想在创建crm的上下文时只有一个用户的上下文,即用户将无法访问其他用户的记录。
我试图像这样更改organizationproxy的调用者:
//original context
OrganizationServiceContext contextORI = new OrganizationServiceContext(organisationProxy);
//i search th user
Utilisateur user= (from k in contextORI.CreateQuery<Utilisateur>()
where k.Id == User.Id
select k).FirstOrDefault();
//i change the caller of organisationProxy
this.organisationProxy.CallerId = user.Id;
//i create the new context
OrganizationServiceContext context = new OrganizationServiceContext(organisationProxy);
但用户始终可以访问所有结果
当我通过WhoAmIRequest验证时,我仍然找到了旧用户。
您是否知道如何切换用户?
答案 0 :(得分:2)
好像您的用户在指定的安全角色中没有 prvActOnBehalfOfAnotherUser 权限。
用户帐户(A)需要特权prvActOnBehalfOfAnotherUser,它包含在Delegate角色中。
或者,仅对于Active Directory目录服务部署,可以将运行模拟代码的用户帐户(A)添加到Active Directory中的PrivUserGroup组。该组由Microsoft Dynamics CRM在安装和设置期间创建。用户帐户(A)不必与许可的Microsoft Dynamics CRM用户关联。但是,被模拟的用户(B)必须是获得许可的Microsoft Dynamics CRM用户。
用于修改数据的实际权限集是Delegate角色用户拥有的权限与正在模拟的用户的权限的交集。换句话说,当且仅当用户A和模拟用户(B)具有该操作所需的特权时,才允许用户A执行某些操作。