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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.06.2010, 20:22   #1  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
377 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
? Аутентификация в Windows Forms
Есть кастомное приложение на Windows Forms. Оно вызывает кастомный web-сервис, который, используя библиотеки CRM SDK что-то пишет в CRM.
И сервер CRM, и клиент, на котором установлено кастомное приложение находятся в домене. То-есть пользователь с клиентского компа свободно заходит в CRM без ввода логина/пароля.
В программе при вызове сервиса прописана строка
Код:
service.UseDafaultCredentials = true;
Но почему-то вываливается ошибка 401, типа не авторизован. Я проверил, дело даже не доходит до CRM-сервиса, а посылает мой кастомный сервис. Закрадывается подозрение, что в Windows Forms приложениях все не так хорошо, как в обычных ASP.NET.
И собственно вопрос - что делать чтобы передать credentials клиента веб-сервису?
Старый 16.06.2010, 20:46   #2  
Артем 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
Нигде в SDK не встречал такой конструкции, если честно. Обычно используется что-то вроде:
Код:
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
Ну или я не понял сути вопроса. При ее использовании у меня не возникало проблем со взаимодействием как с SDK так и не SDK сервисами CRM.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional

Последний раз редактировалось Артем Enot Грунин; 16.06.2010 в 20:49.
Старый 16.06.2010, 21:21   #3  
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
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Нигде в SDK не встречал такой конструкции, если честно. Обычно используется что-то вроде:
Код:
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
Ну или я не понял сути вопроса. При ее использовании у меня не возникало проблем со взаимодействием как с SDK так и не SDK сервисами CRM.
По сути конструкции эквивалентны.

Цитата:
Сообщение от ZooY Посмотреть сообщение
Есть кастомное приложение на Windows Forms. Оно вызывает кастомный web-сервис, который, используя библиотеки CRM SDK что-то пишет в CRM.
И сервер CRM, и клиент, на котором установлено кастомное приложение находятся в домене. То-есть пользователь с клиентского компа свободно заходит в CRM без ввода логина/пароля.
В программе при вызове сервиса прописана строка
Код:
service.UseDafaultCredentials = true;
Но почему-то вываливается ошибка 401, типа не авторизован. Я проверил, дело даже не доходит до CRM-сервиса, а посылает мой кастомный сервис. Закрадывается подозрение, что в Windows Forms приложениях все не так хорошо, как в обычных ASP.NET.
И собственно вопрос - что делать чтобы передать credentials клиента веб-сервису?
Код приложения можете показать? Именно часть, где выполняется работа с вебсервисом?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 16.06.2010, 22:20   #4  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
377 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Да работа с сервисом собственно бональна, если есть логин/пароль то они подставляются для авторизации (это для тестов), если нету - то DefaultCredentials.
Адрес сервиса прописан в конфигурационном файле. Логина и пароля нет, соответственно должна идти авторизация через DefaultCredentials.
Код:
...
using(var service = new Service())
{
    var username = ConfigurationManager.AppSettings["UserName"];
    if(!string.IsNullOrEmpty(username))
    {
        var password = ConfigurationManager.AppSettings["Password"];
        service.Credentials = new NetworkCredential(username, password);
    }
    else
    {
        service.UseDefaultCredentials = true;
    }
    var response = service.Import(str);
    ...
}
Старый 17.06.2010, 04:01   #5  
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
Цитата:
Сообщение от ZooY Посмотреть сообщение
Да работа с сервисом собственно бональна, если есть логин/пароль то они подставляются для авторизации (это для тестов), если нету - то DefaultCredentials.
Адрес сервиса прописан в конфигурационном файле. Логина и пароля нет, соответственно должна идти авторизация через DefaultCredentials.
Код:
...
using(var service = new Service())
{
    var username = ConfigurationManager.AppSettings["UserName"];
    if(!string.IsNullOrEmpty(username))
    {
        var password = ConfigurationManager.AppSettings["Password"];
        service.Credentials = new NetworkCredential(username, password);
    }
    else
    {
        service.UseDefaultCredentials = true;
    }
    var response = service.Import(str);
    ...
}
Была у меня подобная задача, но у меня всё работало, как часы. Можете показать ваши:
1. Код сервиса.
2. Web.Cofig сервиса.
3. Полный код приложения.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 17.06.2010, 06:29   #6  
ShurikEv is offline
ShurikEv
CRM
 
213 / 28 (1) +++
Регистрация: 25.04.2006
Адрес: г. Новосибирск
Иногда помогает расположение урлов в списке trusted сайтов в ИЕ (в те, где залогирование идет автоматом).
Так же под вопросом как настроен Ваш веб-сервис, какую авторизацию ему подавать надо.
И еще. У меня нормально не получилось прокидывать криденшионс: приложение - мой веб-сервис - CRM. Поэтому в конфигах использовал прописанные учетки.
__________________
MS CRM 3.0/4.0
Sharepoint 2003, MOSS 2007/2010
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Microsoft Dynamics CRM Team Blog: Thoughts on Forms Blog bot Dynamics CRM: Blogs 0 26.08.2008 00:11
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:40.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.