Я сделал приложение, которое обращается к веб-сервису CRM. Проблема в том, что когда я развернул dll на сервере Sharepoint, он вернул ошибку 401 неавторизованным. Видимо System.Net.CredentialCache.DefaultCredentials не работал (мое подозрение). Вот код.
CrmSdk.CrmAuthenticationToken token = new CrmSdk.CrmAuthenticationToken();
token.AuthenticationType = AuthenticationType.AD;
token.OrganizationName = ORGANIZATION_NAME;
CrmService service = new CrmService();
service.Url = "http://crmserver:5555/mscrmservices/2007/crmservice.asmx";
service.CrmAuthenticationTokenValue = token;
service.PreAuthenticate = true;
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
Идет наоборот.
Когда я создал приложение, которое обращается к веб-службе Sharepoint (кодирование плагина), и развернул его на сервере CRM. Не удалось получить доступ к веб-службе Sharepoint. Несанкционированная ошибка. Вот код:
Lists listService = new Lists();
listService.PreAuthenticate = true;
listService.Credentials = System.Net.CredentialCache.DefaultCredentials;
listService.Url = "http://sharepointserver/webname/_vti_bin/Lists.asmx";
Мой CRM-сервер и сервер Sharepoint находятся в одном домене.
Для обоих кодов, если я изменил часть учетных данных на что-то вроде этого, затем развернул его на сервере, он может работать.
service.Credentials = new NetworkCredential("username", "password", "domain");
Тем не менее, я не хочу этого делать, потому что он показывает пароль пользователя в коде. Кто-нибудь может мне помочь?
IIS на обоих серверах не разрешает анонимный доступ и использует встроенную проверку подлинности Windows.
Спасибо
С моего локального компьютера я могу получить доступ к веб-службам CRM или веб-службам Sharepoint. Я предполагаю, что авторизован, потому что DefaultCredentials отправил мои учетные данные, что его пароль сохранен в « Сохраненное имя пользователя и пароль » ( Панель управления> Учетные записи пользователей> вкладка Дополнительно> Управление паролями )
Таким образом, мне не нужно вводить:
service.Credentials = new NetworkCredential("username", "password", "domain");
и мои DefaultCredentials от моего локального компа авторизованы для доступа к веб-сервисам.
Я попытался реализовать это на сервере Sharepoint, который обращается к веб-службам CRM. и .. тадаа .. это не сработает. хахаха ..
можем ли мы ввести учетные данные в DefaultCredentials на сервере?
последнее, что я хочу сделать, это жестко закодировать учетную запись пользователя (как в коде выше)