5

在網4.5,我們與代理的工作是這樣的:asp.net核心defaultProxy

<system.net> 
    <!-- --> 
    <defaultProxy enabled="true" useDefaultCredentials="false"> 
     <proxy usesystemdefault="True" proxyaddress="http://192.168.1.1:8888" bypassonlocal="True" autoDetect="False" /> 
     <module type="CommonLibrary.Proxy.MyProxy, CommonLibrary, Version=1.0.0.0, Culture=neutral" /> 
    </defaultProxy> 

    <settings> 
     <httpWebRequest useUnsafeHeaderParsing="true" /> 
     <servicePointManager expect100Continue="false" /> 
    </settings> 
</system.net> 

但在asp.net核心或測試我們沒有找到一個解決類似上述 可能有人請幫助我?

我真的很感謝你的幫助

感謝,問候

回答

4
+0

嗨。 我需要使用defaultProxy,因爲我有一個客戶端wcf,我通過代理服務器驗證了我的提供商的白名單上的IP地址。 –

4

使用HTTP代理服務器在.NET的核心,你必須實現IWebProxy interface.This從System.Net.Primitives.dll assembly.You可以DD它project.json如果不是已經有

例如

"frameworks": { 
    "dotnet5.4": { 
     "dependencies": { 
     "System.Net.Primitives": "4.3.0" 
     } 
    } 
} 

實現是很瑣碎

public class MyHttpProxy : IWebProxy 
    { 

     public MyHttpProxy() 
     { 
      //here you can load it from your custom config settings 
      this.ProxyUri = new Uri(proxyUri); 
     } 

     public Uri ProxyUri { get; set; } 

     public ICredentials Credentials { get; set; } 

     public Uri GetProxy(Uri destination) 
     { 
      return this.ProxyUri; 
     } 

     public bool IsBypassed(Uri host) 
     { 
      //you can proxy all requests or implement bypass urls based on config settings 
      return false; 

     } 
    } 


var config = new HttpClientHandler 
{ 
    UseProxy = true, 
    Proxy = new MyHttpProxy() 
}; 

//then you can simply pass the config to HttpClient 
var http = new HttpClient(config) 

結賬https://msdn.microsoft.com/en-us/library/system.net.iwebproxy(v=vs.100).aspx

+0

非常感謝。 我如何爲wcf客戶端做到這一點? –

+0

嗨。 我需要使用defaultProxy,因爲我有一個客戶端wcf,我通過代理服務器驗證了我的提供商的白名單上的IP地址。 –

+0

@MarceloOliveto是否在.net內核中使用面向客戶端的WCF庫?看起來它仍然不支持代理,有一個問題打開它https://github.com/dotnet/wcf/issues/1592 –