Microsoft CRM 2011 на предпосылке междоменной аутентификации терпит неудачу - PullRequest
1 голос
/ 15 февраля 2012

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

Я использую класс сущности с ранней привязкой, созданный запуском 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?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2012

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

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

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

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

0 голосов
/ 16 февраля 2012

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

...