-1

我想知道在 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) 代表另一个用户执行操作的权限时,此代码成功通过。

4

1 回答 1

0

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

于 2013-02-19T12:09:17.630 回答