기본 자격 증명을 사용하려면 기본 프록시를 어떻게 설정해야합니까?
다음 코드가 저에게 효과적입니다.
var webProxy = WebProxy.GetDefaultProxy();
webProxy.UseDefaultCredentials = true;
WebRequest.DefaultWebProxy = webProxy;
불행히도 WebProxy.GetDefaultProxy()
더 이상 사용되지 않습니다. 내가 또 무엇을해야합니까?
(app.config를 사용하여 defaultProxy 설정을 설정하는 것은 내 배포에서 허용되지 않습니다)
.NET 2.0에서는이 작업을 수행 할 필요가 없습니다. 웹 요청에서 Proxy 속성을 명시 적으로 설정하지 않으면 정적 WebRequest.DefaultWebProxy의 값을 사용합니다. 모든 후속 WebRequest에서 사용중인 프록시를 변경하려는 경우이 정적 DefaultWebProxy 속성을 설정할 수 있습니다.
WebRequest.DefaultWebProxy의 기본 동작은 Internet Explorer에서 사용하는 것과 동일한 기본 설정을 사용하는 것입니다.
현재 사용자에게 다른 프록시 설정 을 사용 하려면 코드를 작성해야합니다.
WebRequest webRequest = WebRequest.Create("http://stackoverflow.com/");
webRequest.Proxy = new WebProxy("http://proxyserver:80/",true);
또는
WebRequest.DefaultWebProxy = new WebProxy("http://proxyserver:80/",true);
또한 프록시의 개체 모델에는 대상 호스트 이름에 따라 프록시가 다를 수 있다는 개념이 포함되어 있음을 기억해야합니다. 이는 webRequest.Proxy의 속성을 디버깅하고 확인할 때 약간 혼란 스러울 수 있습니다. 요구
webRequest.Proxy.GetProxy(new Uri("http://google.com.au"))
사용되는 프록시 서버의 실제 세부 사항을 확인하십시오.
프록시 사용을 설정할 수 있는지 webRequest.Proxy
또는 WebRequest.DefaultWebProxy = null
금지 할 수 있는지에 대한 논쟁이있는 것 같습니다 . 이것은 나를 위해 잘 작동하는 것처럼 보이지만 new DefaultProxy()
필요한 동작을 얻기 위해 매개 변수없이 설정할 수 있습니다. 확인해야 할 또 다른 사항은 응용 프로그램 구성 파일에 프록시 요소 가있는 경우 .NET Framework가 Internet Explorer의 프록시 설정을 사용 하지 않는다는 것 입니다.
MSDN Magazine 기사 .NET에서 자동 구성으로 사용자 부담을 덜어 줍니다. 내부에서 일어나는 일에 대한 자세한 내용을 제공합니다.
브라이언 Genisio는 달리, 사람, 사람들을 위해 있는 애플리케이션의 설정 파일의 내용을 설정할 수 : - 코드에서 아무것도하지 않습니다. 대신 이것을 app.config / web.config에 추가하십시오.
<system.net>
<defaultProxy useDefaultCredentials="true" />
</system.net>
기본 자격 증명을 사용하기위한 실제 및 실제 기본값은 "true"여야합니다. 이 문제는 개발자, 사용자, IT 담당자 등 많은 사람들을 혼란스럽게하는 것을 보았습니다.
자세한 내용은 여기를 참조하십시오 .- http://sticklebackplastic.com/post/2007/01/26/Poxy-proxies.aspx
업데이트 : Microsoft가 useDefaultCredentials의 기본값을 false에서 true로 변경하여이 모든 문제가 사라지고 .NET 앱이 "작동"하도록이 문제 / 아이디어를 만들었습니다. 동의하면 투표하십시오 :
http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2397357-fix-it-so-that-net-apps-can-access-http-thru- 인증
WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;
이렇게하면에서 DefaultWebProxy
를 통해 수행 한 것과 유사한 효과 인 기본 자격 증명을 사용하게됩니다 UseDefaultCredentials = true
.
따라서 새로 생성 된 모든WebRequest
인스턴스는 프록시의 기본 자격 증명을 사용하도록 구성된 기본 프록시를 사용합니다.
Reflection을 사용하여 UseDefaultCredentials
코드 의 -Property를 "true" 로 설정할 수 있습니다.
System.Reflection.PropertyInfo pInfo = System.Net.WebRequest.DefaultWebProxy.GetType().GetProperty("WebProxy",
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
((System.Net.WebProxy)pInfo.GetValue(System.Net.WebRequest.DefaultWebProxy, null)).UseDefaultCredentials = true;
이 스레드는 오래되었지만 최근에 defaultProxy 문제를 우연히 발견했으며 다른 사람들에게 도움이 될 수 있습니다.
Andrew가 제안한대로 구성 설정을 사용했습니다. 배포 할 때 고객이 'defaultProxy'구성을 설정할 수있는 권한이 충분하지 않다는 오류를 받았습니다.
이 구성을 설정할 수있는 권한이없는 이유와 이에 대해 수행 할 작업을 알지 못하는 경우 방금 제거했지만 여전히 작동했습니다. 따라서 VS2013에서는이 문제가 해결 된 것 같습니다.
그리고 우리가 그것에있는 동안 :
WebRequest.DefaultWebProxy.Credentials = new NetworkCredential("ProxyUsername", "ProxyPassword");
자격 증명과 함께 기본 프록시를 사용합니다. 강제로 프록시를 사용하지 않으려면 DefaultWebProxy를 null로 설정하십시오 (원하는 지 모르겠지만).
이 질문 HttpClient 클래스를 사용할 때 프록시에 대해 인증 하는 방법에서 본 것처럼 일부 최신 응용 프로그램에서 구성이 다른 것처럼 보입니다 .
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
<proxy usesystemdefault="True" />
</defaultProxy>
</system.net>
https://msdn.microsoft.com/en-us/library/dkwyc043.aspx 에도 문서화되어 있습니다.
In my deployment I can't use app.config neither to embed what Andrew Webb suggested.
So I'm doing this:
IWebProxy proxy = WebRequest.GetSystemWebProxy();
proxy.Credentials = CredentialCache.DefaultCredentials;
WebClient wc = new WebClient();
wc.UseDefaultCredentials = true;
wc.Proxy = proxy;
Just in case you want to check my IE settings:
This is the new suggested method.
WebRequest.GetSystemWebProxy();
Is need in some systems set null the Proxy proprerty:
Net.WebRequest.DefaultWebProxy.Credentials = System.Net.CredentialCache.DefaultCredentials Dim request As WebRequest = WebRequest.Create(sRemoteFileURL) request.Proxy = Nothing
It's a bug.
'program tip' 카테고리의 다른 글
Webstorm이 JavaScript 파일을 인식하지 못함 (0) | 2020.11.26 |
---|---|
Laravel-http 상태 코드와 함께 json 반환 (0) | 2020.11.26 |
IE에서 작동하지 않는 window.print () (0) | 2020.11.26 |
숫자 집합에서 GCD, LCM을 찾는 방법 (0) | 2020.11.26 |
Eclipse는 중단 점에서 멈추지 않습니다. (0) | 2020.11.26 |