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