누군가가 Visual Studio Tools for Applications를 사용하여 Infopath 응용 프로그램을 SOAP로 보내야하는 WCF를 사용하여 작성된 서비스에 연결하는 것을 돕고 있습니다. 헤더 (clientCredentialType = "UserName"). 서비스가 basicHttpBinding을 사용 중입니다.ClientCredentialType = "UserName"으로 WCF 서비스 사용 .Net 2.0에서
Infopath 2010은 Visual Studio Tools 2005 응용 프로그램에 의존하기 때문에 "서비스 참조"대신 "웹 참조"를 추가해야했습니다. 나는 전에 이것을 할 필요가 없었고, 어떻게해야 할지를 고민하면서 매우 문제가되었다.
service.Credentials.UserName.UserName = "username";
service.Credentials.UserName.Password = "password";
을하지만 웹 속성이 다르게 동작하는 자격 증명을 참조하여 소모 때 나는 그것이 자동으로 SOAP 헤더에 사용자 이름과 암호를 전달받을 수 없습니다 서비스 참조에
난 그냥 말한다.나는 운없이이 포함 몇 가지를 시도 :
MyService service = new MyService();
CredentialCache cache = new CredentialCache();
// I've tried "Basic" and string.Empty as well in the place of "UserName"
cache.Add(new Uri(service.Url), "UserName", new NetworkCredential("username", "password"));
service.Credentials = cache;
service.PreAuthenticate = true;
service.MyMethod();
및
MyService service = new MyService();
service.Credentials = new NetworkCredential("username", "password");
service.MyMethod();
하지만 전혀 운이 없었 없습니다. 서비스에서 전체 메시지를 로깅하면 사용자 이름과 암호가 SOAP 헤더에 전혀 포함되지 않고 다음과 같은 오류 메시지가 나타납니다. "메시지의 보안을 확인할 때 오류가 발생했습니다."
안녕하세요,이 문제가 있습니까? 나는 비슷한 것을 필요로한다. 내 경우에는 자바 응용 프로그램을 통과하는 방법을 찾고 있는데 비누 헤더의 사용자/암호는 wcf 서비스에서 유효성을 검사합니다. 감사! – Roberto
대답은 실제로 .Net 2.0에서 자동으로 수행 할 수 없다는 것입니다. 그러나 Java의 경우에는 대답이 완전히 다를 수 있습니다. 필자는 수동으로 SOAP를 구성하고 서버에 게시함으로써 안드로이드 애플 리케이션 (물론 자바였다)에서 게으른 경로를 갔다. – omatase