을 감상 할 수 있습니다. message or transport security을 사용할 수 있습니다. 여기서 transport는 HTTPS를 의미하며 매우 상호 운용 가능하며 메시지는 WS-Security를 의미합니다. 클라이언트가 일반적으로 특수 API (수동으로 WS-Security 및 관련 프로토콜을 구현하는 것은 거대한 작업 임)를 사용해야합니다. 그래서 그것은 주로 Non-WCF 클라이언트의 유형에 달려 있습니다. Java 또는 C++ 용 API와 PHP 용 API는 많이 있지만 Android, iOS 또는 Windows Mobile 용 WS-Security 기능을 제공하는 API는 알지 못합니다.
사용자 이름과 암호도 메시지 또는 전송 헤더로 전송할 수 있습니다. 전자의 접근 방식은 일반적으로 사전 정의 된 SOAP 헤더 집합 인 표준화 된 UserName Token 프로파일로 구현됩니다 (WCF가이를 수행합니다). 이 헤더에 특별한 것은 없으므로 WS-Security API가없는 비 -WCF 클라이언트도 쉽게 서비스를 사용할 수 있어야합니다. 이후의 접근 방식은 일반적으로 기본 HTTP 인증에 의해 이루어지며 HTTPS와 함께 가장 상호 운용 가능한 솔루션이 될 수 있습니다 (그러나 IIS에서 서비스를 호스팅하고 Windows 계정을 인증에 사용하지 않으려는 경우 WCF 사이트에 몇 가지 문제가있을 수 있습니다).
빠른 답변 감사드립니다. 나는 이미 질문에서 언급 한 것처럼 사용자 이름과 암호 및 X509 인증서로 메시지 보안을 사용했지만 C#에서 HTTP 요청을 사용하여 비누 클라이언트 호출 웹 서비스를 작성하는 방법을 묻습니다. –
XML 암호화와 XML 서명 (둘 다 .NET의 지원 클래스와 별도의 네임 스페이스가 있음)을 올바르게 사용해야하므로 토큰을 올바르게 포함하고 SOAP 봉투를 형식화해야합니다. 당신은 WCF의 큰 부분을 다시 구현하려고합니다. –