在动态crm中获取用户的上下文

时间:2015-07-06 10:10:57

标签: c# dynamics-crm-2011 dynamics-crm-2013

我在动态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验证时,我仍然找到了旧用户。

您是否知道如何切换用户?

1 个答案:

答案 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执行某些操作。

Source