-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]: ユーザーには、別のユーザーに代わって行動する権限がありません。(Fault Detail は Microsoft.Xrm.Sdk.OrganizationServiceFault と同じです)。

ユーザー (A) に別のユーザーに代わって行動するアクセス許可を与えると、このコードは正常に通過します。

4

1 に答える 1

0

期待される動作のようです。設定CallerId = userBGuidすると、userA としてログインしている場合でも、すべてのアクティビティが userB の代わりに行われることを意味します。UserA には、これを行う権限が必要です。

于 2013-02-19T12:09:17.630 に答える