나는 WCF 웹 서비스를 호출하는 멍청한 사람이다. 그래서 이것이 쉬운 질문이되기를 바란다. .NET 4 winform 클라이언트로 웹 서비스를 호출 할 때 인증 스키마를 Anonymous에서 NTLM으로 어떻게 변경합니까?NTLM 인증 스키마를 사용하여 웹 서비스를 호출하는 방법은 무엇입니까?
지금 예외가 발생합니다 : HTTP 요청이 '익명'클라이언트 인증 구성표와 함께 인증되지 않았습니다. 서버에서받은 인증 헤더는 'NTLM'입니다.
내 목표는 TFS 2010의 데이터웨어 하우스 및 큐브를 모니터링하는 데 도움이되는 작은 도구를 만드는 것입니다. TFS는 WarehouseControlWebService 웹 서비스를 제공합니다. 서버에 로그온 할 때 브라우저에서 테스트 모드를 통해 서비스를 호출 할 수 있습니다. 그러나 내 데스크톱에서 동일한 웹 서비스를 원격으로 호출하려고합니다. 내 사용자 계정이 서버의 로컬 관리자 그룹에 있습니다.
표준 Button1 및 TextArea1을 사용하여 .NET 4 WinForm을 만들었습니다. I는 웹 서비스에 대한 서비스 참조를 추가하고 창조적 ServiceReference1라고 불렀다 :
Add Service Reference...
http://tfssvr:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx
그리고 여기 내 코드 뒤에 :
private void button1_Click(object sender, EventArgs e)
{
// Creating a proxy takes about 3-4 seconds
var dwSvc = new ServiceReference1.WarehouseControlWebServiceSoapClient();
// Invoking the method throws an MessageSecurityException
var dwStatus = dwSvc.GetProcessingStatus(null, null, null);
}
내가 System.ServiceModel.Security.MessageSecurityException 받고 있어요 :
클라이언트 인증 스키마 '익명'으로 인해 HTTP 요청이 허가되지 않았습니다. 서버에서받은 인증 헤더는 'NTLM'입니다.
내가 통해 내 자격 증명을 전달하는 시도 한 다음 WCF 문서를 통해서도
dwSvc.ClientCredentials.Windows.ClientCredential =
new System.Net.NetworkCredential("user", "pass", "domain");
및 ...
dwSvc.ClientCredentials.Windows.ClientCredential =
CredentialCache.DefaultNetworkCredentials;
내가 넘어 가고있어하지만 ... 소년 아 ... 거기 거기에 많이. 나는 이것이 쉬운 무엇인가 희망하고있다?
미리 감사드립니다.
참조하십시오 http://meta.stackexchange.com/questions/2950/should-hi-thanks -taglines-and-salutations-from-from-posts from –