Microsoft CRM 2011模拟

时间:2013-02-19 10:44:21

标签: dynamics-crm-2011 dynamics-crm crm

我想知道在CRM 2011中,如果我使用用户(A)启动组织服务,然后我冒充用户(B)。

当我尝试执行请求(即创建帐户,...)时,CRM将使用哪些用户权限?

例如:

我有

  • 用户(A)无权代表其他用户行事。
  • 拥有系统管理员权限并代表其他用户权限行事的用户(B)。

我根据Windows身份验证创建组织服务,并使用用户(A)登录,如下所示:

Uri organizationUri = new Uri("http://localhost:5555/RMS/XRMServices/2011/Organization.svc");
Uri homeRealmUri = null;
ClientCredentials credentials = new ClientCredentials();       
credentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
OrganizationServiceProxy orgProxy = new OrganizationServiceProxy(organizationUri, homeRealmUri, credentials, null);

然后我像那样冒充

orgProxy.CallerId = userBGuid;

当我尝试执行WhoAmIRequest时;我收到以下错误:

System.ServiceModel.FaultException`1 [Microsoft.Xrm.Sdk.OrganizationServiceFault]:用户无权代表其他用户行事。 (故障详细信息等于Microsoft.Xrm.Sdk.OrganizationServiceFault)。

当我授予用户(A)代表其他用户行事的权限时,此代码会成功通过。

1 个答案:

答案 0 :(得分:0)

它看起来是预期的行为。如果设置CallerId = userBGuid,则表示即使您以userA身份登录,也代表userB完成所有活动。 UserA应该有权利这样做。