2011-10-03 7 views
0

나는 SOAP 요청 헤더에 사용자 이름과 암호를 첨부하는 간단한 방법을 this 사용합니다. 이 자바 경계 내에서 잘 작동하지만 내 WCF 클라이언트와 호출 할 수 싶어요. 어떻게해야합니까?WCF의 보안 헤더에 인증을 추가하여 Metro WSIT 서비스를 사용합니다.

나는 다음과 같은 코드를 시도했다, 그러나 그것은 헤더의 자격 증명을 포함하지 않습니다

wsClient.ClientCredentials.UserName.UserName = "Hello"; 
wsClient.ClientCredentials.UserName.Password = "World"; 

사전에 감사!

답변

0

그건 상당히 끔찍한 비표준적인 방식입니다. 그것은 사용자 정의 HTTP 헤더를 사용하므로 WCF 내장 메커니즘이 마술처럼 그러한 접근을 지원할 것이라고 기대할 수는 없습니다. WCF는 SOAP 헤더가 아닌 HTTP 요청에 사용자 정의 비표준 HTTP 헤더를 추가하려는 것을 어떻게 알 수 있습니까?

사용이 :

var proxy = new YourServiceClient(); 
using (var scope = new OperationContextScope(proxy.InnerChannel)) 
{ 
    var prop = new HttpRequestMessageProperty(); 
    prop.Headers.Add("UserName", "Hello"); 
    prop.Headers.Add("Password", "World"); 

    OperationContext context = OperationContext.Current; 
    context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = prop; 

    proxy.CallYourOperation(); 
}