2012-02-15 2 views
1

У меня есть CRM 2011 по установке помещения в одном домене и у вас есть веб-сервер (сервер 2008) в отдельном домене с веб-сервером, на котором размещен веб-сайт MVC 3, который пытается получить доступ услуги, опубликованные на сервере CRM.Microsoft CRM 2011 по ошибке перекрестной аутентификации в доме

Я использую класс ранней связанной сущности, созданный при запуске CrmSvcUtil.

Моя проблема в том, что когда я пытаюсь использовать службы из кода на веб-сервере, я получаю сообщение об ошибке «Требование к токену безопасности не может быть выполнено, поскольку проверка подлинности не удалась».

Если моя установка 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; 
    } 
} 

С точки зрения пула приложений, что и веб-сервер находится в другом домене, могу ли я использовать учетную запись пользователя из блока CRM?

ответ

0

Да, вы должны быть в состоянии сделать это. Является ли пользователь, управляющий пулом приложений вашего сайта MVC пользователем в CRM? Или вы предоставляете учетные данные для вызовов CRM?

0

У нас была такая же проблема. Если мы создадим сервис через прокси-сервер, он просто не работает.

Однако вы можете заставить это работать, если вы передадите ссылку IOrganizationService внутри localContext и используете это вместо прокси-подхода.

Afaik, цель создания прокси-сервера - это когда вы подключаетесь к CRM вне приложения. Когда внутри плагина, microsoft дает вам все ссылки на объекты, необходимые для crud.

(Кто-нибудь мог создать прокси-сервер службы внутри плагина и на самом деле заставить его работать?)