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) に別のユーザーに代わって行動するアクセス許可を与えると、このコードは正常に通過します。