2012-02-15 67 views
1

我有一個CRM 2011的前提下安裝在一個域,並且對與Web服務器託管的MVC 3網站,試圖訪問一個單獨的域中的Web服務器(服務器2008)在CRM服務器上發佈的服務。微軟CRM 2011的前提下跨域認證失敗

我使用運行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

是的,你應該能夠做到這一點。用戶是否在CRM中運行MVC網站的應用程序池?或者你是否提供了CRM的呼叫憑證?

0

我們一直有完全相同的問題。如果我們通過代理創建服務,它根本不起作用。

但是,你可以得到這個,如果你在localContext內IOrganizationService引用傳遞工作,改用該代理方式的。

據我所知,代理創作的意圖是當您連接到CRM應用程序之外。在插件內部時,Microsoft將爲您提供所有需要的對象引用。

(有人能夠創建一個插件內的服務代理,並且實際上它工作嗎?)