【发布时间】:2013-02-19 10:44:21
【问题描述】:
我想知道在 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) 代表另一个用户执行操作的权限时,此代码成功通过。
【问题讨论】:
-
你的问题自己回答了......你自己说的,当你冒充用户时,它会尝试充当没有权限的用户A,这就是为什么你得到错误但是当你给他权限时,然后你顺利通过了。
标签: dynamics-crm-2011 dynamics-crm crm