2012-02-15 12 views
1

1つのドメインにCRM 2011をインストールし、アクセスしようとしているMVC 3 WebサイトをホストしているWebサーバーと別のドメインにWebサーバー(サーバー2008) CRMサーバーに公開されているサービス。Microsoft CRM 2011 on premiseのクロスドメイン認証に失敗しました

私はCrmSvcUtilを実行して作成された初期バインドエンティティクラスを使用しています。

私の問題は、Webサーバー上のコードからサービスを使用しようとしたときに、「認証が失敗したためにセキュリティトークンの要求を満たすことができませんでした」というメッセージが表示される場合です。

私のCRMのインストールが前提条件の場合、実際にCRMがIFDとしてインストールされていない別のマシンの別のマシンから接続することは可能ですか?

私はサービスを呼び出すための資格情報を使用しています

...などのアプリケーションプールの面では

public override bool ValidateUser(string username, string password) 
    { 
     var credentials = SecurityHelper.BuildClientCredentials(_crmUsername, _crmPassword, _domain); 


     using (_serviceProxy = new OrganizationServiceProxy(new Uri(_organisationUri), null, credentials, null)) 
     { 
      if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password)) 
      { 
       _serviceProxy.EnableProxyTypes(); 


       using (var orgContext = new XrmServiceContext(_serviceProxy)) 
       {...... 

と資格情報を作成するために、私のヘルパークラス

.....

public class SecurityHelper 
{ 
public static ClientCredentials BuildClientCredentials(string username, string password, string domain) 
    { 
     var credentials = new ClientCredentials(); 
     credentials.Windows.ClientCredential = new System.Net.NetworkCredential(username, password, domain); 
     credentials.UserName.UserName = username; 
     credentials.UserName.Password = password; 
     return credentials; 
    } 
} 

Webサーバーは別のドメインにありますかCRMボックスからユーザーアカウントを適用できますか?

答えて

0

はい、これを行う必要があります。 MVCサイトのアプリケーションプールを実行しているユーザーがCRMのユーザーですか?または、CRMへの呼び出しの資格情報を提供していますか?

0

私たちはまったく同じ問題を抱えています。プロキシ経由でサービスを作成すると、単に機能しません。

ただし、localContext内のIOrganizationService参照を渡してプロキシの代わりに使用すると、これが機能するようになります。

Afaikの場合、プロキシ作成の目的は、アプリケーションの外部でCRMに接続する場合です。プラグインの中で、microsoftはあなたにすべてのオブジェクト参照を要求します。

(誰でもプラグイン内でサービスプロキシを作成でき、実際にはそれを使用できますか?)

関連する問題