AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.04.2015, 11:24   #1  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
CRM 4.0 Авторизация
Добрый день.
Поставлена задача коннектиться к CRM из-под PHP и забирать данные. Подскажите, пожалуйста, как в этом случае организовать авторизацию (программно) на CRM с наименьшими потерями.
__________________
Так победим!

Старый 10.04.2015, 11:43   #2  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Добрый день,

Гугл в помощь.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: probka (1).
Старый 11.04.2015, 14:29   #3  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
Цитата:
Сообщение от a33ik Посмотреть сообщение
Добрый день,

Гугл в помощь.
Спасибо за ссылку. Я находила нечто подобное, но проблема в том, что я не могу подключиться даже к CrmDiscoveryService, хотя анонимная проверка пользователя включена. Приходит ответ об ошибке 401 и том, что доступ запрещен. Где собака зарыта, ума не приложу.
__________________
Так победим!

Старый 13.04.2015, 16:18   #4  
lode is offline
lode
Участник
Аватар для lode
 
37 / 12 (1) ++
Регистрация: 23.03.2009
Адрес: Россия, Екатеринбург
Цитата:
Сообщение от probka Посмотреть сообщение
Спасибо за ссылку. Я находила нечто подобное, но проблема в том, что я не могу подключиться даже к CrmDiscoveryService, хотя анонимная проверка пользователя включена. Приходит ответ об ошибке 401 и том, что доступ запрещен. Где собака зарыта, ума не приложу.
А браузер ссылку открывает? Должны быть методы и пр.
Старый 13.04.2015, 16:45   #5  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
Цитата:
Сообщение от lode Посмотреть сообщение
А браузер ссылку открывает? Должны быть методы и пр.
Нет, не открывает. Возникает окошко с запросом авторизации, хотя по идее такого окна не должно быть. Полагаю, что тут больше задача администрирования, но я не сильна в этих вопросах.
__________________
Так победим!

Старый 14.04.2015, 07:47   #6  
lode is offline
lode
Участник
Аватар для lode
 
37 / 12 (1) ++
Регистрация: 23.03.2009
Адрес: Россия, Екатеринбург
Действуйте по шагам:
1. CRM открывается в IE (интранет) под текущим пользователем или тем, который нужен.
2. Проверка веб-сервиса, должны быть видны все методы.
3. Коннект из вашей системы с указанным пользователем.
Старый 10.04.2015, 15:41   #7  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
Есть вообще мощная штука http://phpmscrm.codeplex.com/
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Старый 14.04.2015, 19:58   #8  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Прошу прощения, с чего вы вообще решили, что сервис не требует авторизации? Требует как и все остальные: https://msdn.microsoft.com/en-us/library/bb955359.aspx
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 14.04.2015, 20:24   #9  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Прошу прощения, с чего вы вообще решили, что сервис не требует авторизации? Требует как и все остальные: https://msdn.microsoft.com/en-us/library/bb955359.aspx
Вы не тот пример смотрите. Мой случай вот этот:
https://msdn.microsoft.com/en-us/library/cc151054.aspx
__________________
Так победим!

Старый 14.04.2015, 19:59   #10  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Андрей, ты уже отвечал на подобный вопрос: https://social.microsoft.com/Forums/...vice?forum=crm
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 15.04.2015, 13:24   #11  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
И тем не менее, нужно авторизоваться!

X++:
//Retrieve a list of available organizations.
RetrieveOrganizationsRequest orgRequest = new RetrieveOrganizationsRequest();
orgRequest.UserId = domain + "\\" + username;
orgRequest.Password = password;
Я нахожу вполне логичным, что Disco сервис не рассказывает список пользователей и организаций не авторизованным пользователям.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 15.04.2015, 13:55   #12  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
И тем не менее, нужно авторизоваться!

X++:
//Retrieve a list of available organizations.
RetrieveOrganizationsRequest orgRequest = new RetrieveOrganizationsRequest();
orgRequest.UserId = domain + "\\" + username;
orgRequest.Password = password;
Я нахожу вполне логичным, что Disco сервис не рассказывает список пользователей и организаций не авторизованным пользователям.
Это Вы мне привели кусок не про авторизацию. Это параметры запроса, который передается в метод Execute веб сервиса. Внимательнее надо код читать. И так же можно было внимательнее почитать меня, я парой постов выше написала что значения параметров у меня есть.

Если мои слова Вас не убеждают, то, может быть, подскажете, как написать SOAP запрос к веб-сервису /MSCRMServices/2007/SPLA/CrmDiscoveryService.asmx таким образом, чтобы он включал в себя и авторизацию на данном сервисе?
__________________
Так победим!


Последний раз редактировалось probka; 15.04.2015 в 13:58.
Старый 15.04.2015, 14:06   #13  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от probka Посмотреть сообщение
Если мои слова Вас не убеждают, то, может быть, подскажете, как написать SOAP запрос к веб-сервису /MSCRMServices/2007/SPLA/CrmDiscoveryService.asmx таким образом, чтобы он включал в себя и авторизацию на данном сервисе?
Чтобы снять запрос самый простой способ - это Fiddler. Напишите приложение на C#, которое будет подключаться к CRM, запустите Fiddler, запустите ваше приложение. В Fiddler сможете получить результат запроса.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: probka (1).
Старый 15.04.2015, 15:32   #14  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
Цитата:
Сообщение от a33ik Посмотреть сообщение
Чтобы снять запрос самый простой способ - это Fiddler. Напишите приложение на C#, которое будет подключаться к CRM, запустите Fiddler, запустите ваше приложение. В Fiddler сможете получить результат запроса.
Андрей, вы знаете, тут тоже засада. Из C# тоже почему-то не виден сервис /MSCRMServices/2007/SPLA/CrmDiscoveryService.asmx. Определенно, админы что-то намудрили с настройками.
__________________
Так победим!

Старый 15.04.2015, 17:37   #15  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от probka Посмотреть сообщение
Андрей, вы знаете, тут тоже засада. Из C# тоже почему-то не виден сервис /MSCRMServices/2007/SPLA/CrmDiscoveryService.asmx. Определенно, админы что-то намудрили с настройками.
Судя по всему - да. Так что если сможете решить эту проблему - сможете решить и всё оставшееся.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 15.04.2015, 14:16   #16  
lode is offline
lode
Участник
Аватар для lode
 
37 / 12 (1) ++
Регистрация: 23.03.2009
Адрес: Россия, Екатеринбург
Цитата:
Сообщение от a33ik Посмотреть сообщение
Рукалицо... Не судите по своему опыту. Почитайте для самообразования надосуге.
Может быть. Возня с сертификатами то еще удовольствие.

Цитата:
Сообщение от probka Посмотреть сообщение
Вы не тот пример смотрите. Мой случай вот этот:
https://msdn.microsoft.com/en-us/library/cc151054.aspx
там тоже есть и логин и пароль
Вообще разрешать анонимный доступ к вебсервису (даже такой как CrmDiscoveryService) - это не очень хорошо.

Цитата:
Сообщение от probka Посмотреть сообщение
Это Вы мне привели кусок не про авторизацию. Это параметры запроса, который передается в метод Execute веб сервиса. Внимательнее надо код читать. И так же можно было внимательнее почитать меня, я парой постов выше написала что значения параметров у меня есть.

Если мои слова Вас не убеждают, то, может быть, подскажете, как написать SOAP запрос к веб-сервису /MSCRMServices/2007/SPLA/CrmDiscoveryService.asmx таким образом, чтобы он включал в себя и авторизацию на данном сервисе?
Чем Вас не устраивает ответ, помеченный как решение по ссылке выше?
CRM 4.0 Авторизация

X++:
1. Create an admin user in the active directory where the crm is install.
2. Add the user created in step 1 in the crm user.
3. Set the running user of the application as the created user in step 1.
4. Add the running user of the application pool of the crm service.
5. In the application, use the following code to connect to the discovery service (that give you a authentication ticket on crm) and use it to do the call:

           CrmService service = new CrmService();

            CrmAuthenticationToken token = new CrmAuthenticationToken();
            token.AuthenticationType = 0;
            token.OrganizationName = organization;

            CrmDiscoveryService discoveryService = new CrmDiscoveryService();
            discoveryService.UseDefaultCredentials = true;
            discoveryService.Url = discoveryServiceUrl;


//Call the crm discovery service to get the related organisation of the user that execute the code (as created in step 2)
            RetrieveOrganizationsRequest orgRequest = new RetrieveOrganizationsRequest();
            RetrieveOrganizationsResponse orgResponse = (RetrieveOrganizationsResponse)discoveryService.Execute(orgRequest);

            OrganizationDetail orgInfo = new OrganizationDetail();

            foreach (OrganizationDetail orgDetail in orgResponse.OrganizationDetails)
            {

                if (orgDetail.OrganizationName == [your organisation name])
                {
                    orgInfo = orgDetail;

                    var cred = ConfigurationData.GetUriCredentialSection("DiscoveryService/Credentials");

                    RetrieveCrmTicketRequest ticketRequest = new RetrieveCrmTicketRequest();
                    ticketRequest.OrganizationName = organization;
                    ticketRequest.UserId =[user name of the step 2 user]
                    ticketRequest.Password = [user password of the step 2 user] 
                    RetrieveCrmTicketResponse ticketResponse = (RetrieveCrmTicketResponse)discoveryService.Execute(ticketRequest); //retrive the authentification

                    token.CrmTicket = ticketResponse.CrmTicket;
                    break;
                }
            }

            service.CrmAuthenticationTokenValue = token;
            service.Url = serviceUrl;
            service.UseDefaultCredentials = true;

//Do your own call with service

6. Enjoy the crm service possibility!

Hope that could help somwone :)

Последний раз редактировалось lode; 15.04.2015 в 14:19.
Старый 15.04.2015, 15:28   #17  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
Цитата:
Сообщение от lode Посмотреть сообщение
там тоже есть и логин и пароль
Вам тоже советую внимательнее читать код

Цитата:
Сообщение от lode Посмотреть сообщение
Вообще разрешать анонимный доступ к вебсервису (даже такой как CrmDiscoveryService) - это не очень хорошо.
Тогда подскажите, как реализовать к нему доступ из PHP через интернет неанонимно.

Цитата:
Сообщение от lode Посмотреть сообщение
Чем Вас не устраивает ответ, помеченный как решение по ссылке выше?
CRM 4.0 Авторизация
Устраивает всем, кроме того, что у меня почему-то из под C# не виден сервис /MSCRMServices/2007/SPLA/CrmDiscoveryService.asmx .
__________________
Так победим!

Старый 16.04.2015, 14:33   #18  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от probka Посмотреть сообщение
Это Вы мне привели кусок не про авторизацию. Это параметры запроса, который передается в метод Execute веб сервиса. Внимательнее надо код читать. И так же можно было внимательнее почитать меня, я парой постов выше написала что значения параметров у меня есть.

Если мои слова Вас не убеждают, то, может быть, подскажете, как написать SOAP запрос к веб-сервису /MSCRMServices/2007/SPLA/CrmDiscoveryService.asmx таким образом, чтобы он включал в себя и авторизацию на данном сервисе?
Девушка, советую вам не огрызаться, а слушать старших. Кусок кода, который я прислал - это и есть авторизация в CRM при правильно настроенном IFD. У вас, очевидно, есть проблема с настройкой системы и IIS, если он не работает.

На PHP, увы не пишу, но делал такое: http://www.axforum.info/forums/blog.php?b=152. Если нужно, пришлю версию, которая работает с IFD. В отличие от вашего кода, мой работает, так что будьте уверены: он содержит ту часть, которая отвечает за авторизацию.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional

Последний раз редактировалось Артем Enot Грунин; 16.04.2015 в 14:41.
Старый 16.04.2015, 14:56   #19  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Девушка, советую вам не огрызаться, а слушать старших. Кусок кода, который я прислал - это и есть авторизация в CRM при правильно настроенном IFD.
Прошу прощения, если была груба. Я немного нервничаю, уже неделю вожусь с этой задачей. Соглашусь с утверждением, что этот кусок служит для авторизации в CRM.

Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
У вас, очевидно, есть проблема с настройкой системы и IIS, если он не работает.
Абсолютно с этим согласна. Только "проблемы" - это слишком расплывчато. Я сейчас пытаюсь локализовать ошибку. Буду благодарна за любую помощь с этим делом с Вашей стороны.

Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
На PHP, увы не пишу, но делал такое: http://www.axforum.info/forums/blog.php?b=152. Если нужно, пришлю версию, которая работает с IFD. В отличие от вашего кода, мой работает, так что будьте уверены: он содержит ту часть, которая отвечает за авторизацию.
Артем, я не писала никакого кода. Я пока пытаюсь всего лишь настроить систему. Ваш код мне, возможно, пригодился бы, но, может быть, лучше подскажете, как правильно настроить IFD для CRM 4.0? Не исключено, что проблемы именно с этим.
__________________
Так победим!

Старый 15.04.2015, 14:26   #20  
lode is offline
lode
Участник
Аватар для lode
 
37 / 12 (1) ++
Регистрация: 23.03.2009
Адрес: Россия, Екатеринбург
К вопросу об отдельном вебсервисе. Для данных Вам вполне хватило бы и одного Fetch.
Весь вебсервис состоял бы из одного метода:
X++:
[WebMethod]
public string Fetch(String query)
{
  return (new CrmService()).Fetch(query);
}
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 15 Blog bot Dynamics CRM: Blogs 1 10.02.2016 10:26
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 17 Blog bot Dynamics CRM: Blogs 0 10.05.2014 06:30
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2013 Update Rollup 2 Blog bot Dynamics CRM: Blogs 0 15.04.2014 01:15
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 16 Blog bot Dynamics CRM: Blogs 0 23.01.2014 03:15
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 10 Blog bot Dynamics CRM: Blogs 0 17.08.2012 03:27

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:30.