【问题标题】:Microsoft CRM 2011 ImpersonationMicrosoft CRM 2011 模拟
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多