14.04.2015, 15:32 | #21 |
Участник
|
Мало кто дает доступ к Crm вне доменной сети и технически мне кажется более сложным контролировать такую систему.
Единственное, что могу сказать, что анонимная аутентификация вам здесь помочь не должна - тот же CrmDiscoveryService должен же как-то отличать Вас от других пользователей. То есть все равно нужен логин/пароль. |
|
14.04.2015, 15:41 | #22 |
Участник
|
Цитата:
Сообщение от lode
Мало кто дает доступ к Crm вне доменной сети и технически мне кажется более сложным контролировать такую систему.
Единственное, что могу сказать, что анонимная аутентификация вам здесь помочь не должна - тот же CrmDiscoveryService должен же как-то отличать Вас от других пользователей. То есть все равно нужен логин/пароль. И если нужен логин/пароль для авторизации на данном сервисе, то какой вообще тогда в нем смысл? Его задача - вернуть тикет согласно параметрам метода Execute, которые содержат в себе жестко прописанные логин и пароль. Эти данные у меня есть. Осталось только понять, почему ответом на запрос к этому веб сервису приходит ошибка 401.5, хотя по идее он должен пропускать всех, кто на него стучится. |
|
14.04.2015, 16:02 | #23 |
Чайный пьяница
|
Цитата:
Катерина, к сожалению не могу вам помочь... Никогда с такой экзотикой не сталкивался.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
14.04.2015, 19:58 | #24 |
Moderator
|
Прошу прощения, с чего вы вообще решили, что сервис не требует авторизации? Требует как и все остальные: https://msdn.microsoft.com/en-us/library/bb955359.aspx
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
14.04.2015, 19:59 | #25 |
Moderator
|
Андрей, ты уже отвечал на подобный вопрос: https://social.microsoft.com/Forums/...vice?forum=crm
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
14.04.2015, 20:24 | #26 |
Участник
|
Цитата:
Сообщение от Артем Enot Грунин
Прошу прощения, с чего вы вообще решили, что сервис не требует авторизации? Требует как и все остальные: https://msdn.microsoft.com/en-us/library/bb955359.aspx
https://msdn.microsoft.com/en-us/library/cc151054.aspx |
|
15.04.2015, 13:24 | #27 |
Moderator
|
И тем не менее, нужно авторизоваться!
X++: //Retrieve a list of available organizations. RetrieveOrganizationsRequest orgRequest = new RetrieveOrganizationsRequest(); orgRequest.UserId = domain + "\\" + username; orgRequest.Password = password;
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
15.04.2015, 13:55 | #28 |
Участник
|
Цитата:
Сообщение от Артем 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 | #29 |
Чайный пьяница
|
Чтобы снять запрос самый простой способ - это Fiddler. Напишите приложение на C#, которое будет подключаться к CRM, запустите Fiddler, запустите ваше приложение. В Fiddler сможете получить результат запроса.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: probka (1). |
15.04.2015, 14:16 | #30 |
Участник
|
Цитата:
Сообщение от 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, 14:26 | #31 |
Участник
|
К вопросу об отдельном вебсервисе. Для данных Вам вполне хватило бы и одного Fetch.
Весь вебсервис состоял бы из одного метода: X++: [WebMethod] public string Fetch(String query) { return (new CrmService()).Fetch(query); } |
|
15.04.2015, 15:28 | #32 |
Участник
|
Вам тоже советую внимательнее читать код
Цитата:
Цитата:
Сообщение от lode
Чем Вас не устраивает ответ, помеченный как решение по ссылке выше?
CRM 4.0 Авторизация |
|
15.04.2015, 15:32 | #33 |
Участник
|
Андрей, вы знаете, тут тоже засада. Из C# тоже почему-то не виден сервис /MSCRMServices/2007/SPLA/CrmDiscoveryService.asmx. Определенно, админы что-то намудрили с настройками.
|
|
15.04.2015, 17:37 | #34 |
Чайный пьяница
|
Судя по всему - да. Так что если сможете решить эту проблему - сможете решить и всё оставшееся.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
16.04.2015, 14:33 | #35 |
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 | #36 |
Участник
|
Цитата:
Цитата:
Цитата:
Сообщение от Артем Enot Грунин
На PHP, увы не пишу, но делал такое: http://www.axforum.info/forums/blog.php?b=152. Если нужно, пришлю версию, которая работает с IFD. В отличие от вашего кода, мой работает, так что будьте уверены: он содержит ту часть, которая отвечает за авторизацию.
|
|
16.04.2015, 19:43 | #37 |
Участник
|
Проблему решила. Оказалось, что админы меня урезали в правах, и IFD не был настроен так, как нужно. По вашей первой ссылке все отлично работает. Так что теперь вопросов у меня больше не осталось. Еще раз спасибо за помощь и поддержку.
|
|
|
|