|
15.04.2015, 13:55 | #1 |
Участник
|
Цитата:
Сообщение от Артем Enot Грунин
И тем не менее, нужно авторизоваться!
X++: //Retrieve a list of available organizations. RetrieveOrganizationsRequest orgRequest = new RetrieveOrganizationsRequest(); orgRequest.UserId = domain + "\\" + username; orgRequest.Password = password; Если мои слова Вас не убеждают, то, может быть, подскажете, как написать SOAP запрос к веб-сервису /MSCRMServices/2007/SPLA/CrmDiscoveryService.asmx таким образом, чтобы он включал в себя и авторизацию на данном сервисе? Последний раз редактировалось probka; 15.04.2015 в 13:58. |
|
15.04.2015, 14:06 | #2 |
Чайный пьяница
|
Чтобы снять запрос самый простой способ - это Fiddler. Напишите приложение на C#, которое будет подключаться к CRM, запустите Fiddler, запустите ваше приложение. В Fiddler сможете получить результат запроса.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: probka (1). |
15.04.2015, 15:32 | #3 |
Участник
|
Андрей, вы знаете, тут тоже засада. Из C# тоже почему-то не виден сервис /MSCRMServices/2007/SPLA/CrmDiscoveryService.asmx. Определенно, админы что-то намудрили с настройками.
|
|
15.04.2015, 17:37 | #4 |
Чайный пьяница
|
Судя по всему - да. Так что если сможете решить эту проблему - сможете решить и всё оставшееся.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
16.04.2015, 19:43 | #5 |
Участник
|
Проблему решила. Оказалось, что админы меня урезали в правах, и IFD не был настроен так, как нужно. По вашей первой ссылке все отлично работает. Так что теперь вопросов у меня больше не осталось. Еще раз спасибо за помощь и поддержку.
|
|
15.04.2015, 14:16 | #6 |
Участник
|
Цитата:
Сообщение от 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 | #7 |
Участник
|
Вам тоже советую внимательнее читать код
Цитата:
Цитата:
Сообщение от lode
Чем Вас не устраивает ответ, помеченный как решение по ссылке выше?
CRM 4.0 Авторизация |
|
16.04.2015, 14:33 | #8 |
Moderator
|
Цитата:
Сообщение от probka
Это Вы мне привели кусок не про авторизацию. Это параметры запроса, который передается в метод Execute веб сервиса. Внимательнее надо код читать. И так же можно было внимательнее почитать меня, я парой постов выше написала что значения параметров у меня есть.
Если мои слова Вас не убеждают, то, может быть, подскажете, как написать SOAP запрос к веб-сервису /MSCRMServices/2007/SPLA/CrmDiscoveryService.asmx таким образом, чтобы он включал в себя и авторизацию на данном сервисе? На 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 | #9 |
Участник
|
Цитата:
Цитата:
Цитата:
Сообщение от Артем Enot Грунин
На PHP, увы не пишу, но делал такое: http://www.axforum.info/forums/blog.php?b=152. Если нужно, пришлю версию, которая работает с IFD. В отличие от вашего кода, мой работает, так что будьте уверены: он содержит ту часть, которая отвечает за авторизацию.
|
|
|
|