В настоящее время я пытаюсь разработать веб-службу ExtendedPSI, которая в свою очередь вызывает ряд существующих веб-служб PSI. Проблема заключается в том, что я получаю сообщение об ошибке ( System.Net.WebException: запрос не выполнен с состоянием HTTP 401: не авторизован. ) при попытке доступа к существующим службам PSI с помощью созданного мной ExtendedPSI.
Я смогу заставить службу работать, если жестко закодировать учетные данные в моем ExtendedPSI, используя следующий фрагмент:
resWS.Credentials = new NetworkCredential("userName", "userPass", "domain");
но не при использовании:
resWS.Credentials = CredentialCache.DefaultCredentials;
(я пробовал CredentialCache.DefaultNetworkCredentials, но прочитал, что это не работает через HTTP или FTP)
Я прочитал множество постов с предложениями, такими как включение аутентификации Windows, удаление анонимного доступа и т. Д., Либо в клиентском web.config, либо в виртуальном из вызывающего веб-приложения, однако я использую SoapUI для вызова службы ExtendedPSI в качестве окончательного решения будет вызываться платформой ESB (а именно SAP PI).
Но с помощью SoapUI мне удалось по очереди вызвать все существующие службы PSI (веб-службы, называемые в моей службе ExtendedPSI), указав свои данные для входа в систему через интерфейс SoapUI, чтобы я знал, что существующие службы работают до тех пор, пока я могу их передать. на учетных данных, но они пусты, когда
используя CredentialCache.DefaultCredentials .
Надеюсь, это кому-то имеет смысл (это моя первая попытка веб-сервисов, поэтому я извиняюсь, если это немного расплывчато). На самом деле я не хочу жестко задавать детали входа в свой сервис, поэтому надеюсь, что кто-то сталкивался с этим раньше и нашел решение, которое я мог бы использовать ...
Информация, которая мне нужна, хранится в HttpContext? Зашифрованный токен, который я могу передать (возможно, сюда) :)? Или мне понадобится общий пользователь для доступа к этим существующим веб-службам PSI?
К вашему сведению: я следовал статье http://msdn.microsoft.com/en-us/library/bb428837.aspx (которую я расширил далее, чтобы называть существующие PSI), но она предполагает своего рода клиента MS.NET, вызывающего службу.
Заранее спасибо ...
С уважением,
TartanBono