2013-02-19 184 views
0

我想知道在CRM 2011中,如果我是以用戶(A)發起組織服務,然後模仿用戶(B)。Microsoft CRM 2011模仿

當我嘗試執行請求(即創建帳戶,...)時,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)代表另一個用戶的權限時,此代碼成功通過。

+3

你的問題答案本身。你自己說,當你模仿用戶,然後它試圖作爲userA誰沒有權限,這就是爲什麼你得到的錯誤,但是當你給他的權限,然後你通過它成功。 – 2013-02-19 11:58:01

回答

0

它看起來是預期的行爲。如果您設置了CallerId = userBGuid,這意味着即使您以userA身份登錄,也會代表userB完成所有活動。 UserA應該有特權來做到這一點。