2013-03-19 2 views
3

나는 현재이 비슷한 다음하고 프록시 서버에 자격 증명을 전달하지와 :C# HttpWebRequest를 프록시 자격 증명

HttpWebRequest myWebRequest = (HttpWebRequest) WebRequest.Create("http://www.microsoft.com"); 
IWebProxy proxy = myWebRequest.Proxy; 
Uri newUri = new Uri(proxyAddress); 
myProxy.Address = newUri; 
... (setting of username/password for proxy) 
myProxy.Credentials = new NetworkCredential(username, password); 
myWebRequest.Proxy = myProxy; 

HttpWebResponse myWebResponse = (HttpWebResponse) myWebRequest.GetResponse(); 

내가 그 URL의이 접촉되어 있는지 확인할 필요가있는 IIS 7.5 호스팅 응용 프로그램에서 코드를 실행 해요을 프로세스가 계속되기 전에. 서비스가 외부 세계에 액세스해서는 안되기 때문에 IT 부서에서 제공 한 자격 증명을 사용하여 특정 프록시 서버를 사용해야합니다.

불행히도 내가 시도해도 (app.config의 system.net/default 프록시, URL 및 자격증 명을 만들거나 관련 모듈 클래스를 사용하여 위와 비슷한 것을 시도해보십시오) 프록시 서버는 자격 증명이 전달되었습니다.

내가 놓친 가능성이 있습니까? 나는 기본 응용 프로그램 풀 ID IIS에서 실행중인 응용 프로그램과 함께 디버그 모드에서 VS2010 웹 응용 프로그램에서이 실행 해 보았습니다. QA 환경의 서버에서 동일하게 변경되며 아무 것도 변경되지 않습니다. 프록시를 전혀 사용하지 않거나 자격 증명을 보내지 않습니다.

또한 PreAuthenticate = trueUseDefaultCredentials을 모두 true 및 k로 설정하고 변경하지 않으려 고 시도했습니다.

실종에 대한 아이디어가 있습니까?

답변

1

편집 : 죄송합니다, 처음에 질문을 잘못 이해 - 아래의 수정 답변 :

나는 새로운 WebProxy가 객체를 생성 자격 증명을 설정 한 다음 요청의 프록시로 설정 (보다는 기존 프록시를 획득하려고 할 것입니다

요청의 개체를 수정하고 수정) :

HttpWebRequest myWebRequest = 
    (HttpWebRequest) WebRequest.Create("http://www.microsoft.com"); 
IWebProxy proxy = new WebProxy(proxyAddress); 
string proxyUsername = @"foo"; 
string proxyPassword = @"bar"; 
proxy.Credentials = new NetworkCredential(proxyUsername, proxyPassword); 
myWebRequest.Proxy = proxy;