2011-11-11 2 views
0

웹 서비스를 사용하고 있지만 인터페이스를 사용하려고해도 요청과 함께 클라이언트 자격 증명을 보내지 않으려 고합니다.WCF 요청에 ClientCredentials를 연결하지 않기로했습니다.

Dim MyUploadEvent As New EventUploadWSv1.EventUploadWSv1PortTypeClient("IEventUploadWSv1Port") 
Dim request As New EventUploadWSv1.webservice_source_event_FileUploadRequest 

' First Thing I tried 
MyUploadEvent.ClientCredentials.UserName.UserName = "..." 
MyUploadEvent.ClientCredentials.UserName.Password = "..." 

' Also Tried this based on a question here and a couple of blogs 
'Dim defaultCredentials As ClientCredentials 
'Dim loginCredentials As New ClientCredentials() 

'loginCredentials.UserName.UserName = "..." 
'loginCredentials.UserName.Password = "..." 

'defaultCredentials = MyUploadEvent.Endpoint.Behaviors.Find(Of ClientCredentials)() 
'MyUploadEvent.Endpoint.Behaviors.Remove(defaultCredentials) 
'MyUploadEvent.Endpoint.Behaviors.Insert(0, loginCredentials) 

' Configure Request Object 

' This throws an exception 
MyUploadEvent.fileUpload(request) 

가 나는 또한 다른 모든 ClientCredentials 필드를 사용하여 시도 (MyUploadEvent.ClientCredentials :이 같은 서비스 프록시를 사용하여 다음

<security mode="Transport"> 
    <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> 
    <message clientCredentialType="UserName" algorithmSuite="Default" /> 
</security> 

처럼

내의 app.config의 보안 블록 본다 MyUploadEvent.ClientFactory.ClientCredentials)하지만 서버는 SOAP 인증 정보가 첨부되어 있지 않다는 메시지를 반환합니다. 전선을 통해 전송되는 메시지를 확인 했으므로 어디에서나 사용자 이름이나 비밀번호에 대한 언급이 없습니다. 나는 분명히 내가 여기 있으면 안되는 무언가를 놓치고 있습니다.

답변

0

TransportWithMessageCredential 보안 모드를 사용해야합니다. 전송은 단순히 Transport 요소와요소에 정의 된 구성 만 사용하며 완전히 무시됩니다.

관련 문제