How to connect to WCF service via proxy

0

I'm trying to connect to WCF service via proxy. Proxy has authentication by login-password.

My code is:

var proxyHost = "http://127.0.0.1:3128/";
var proxyUserName = "username";
var proxyUserPassword = "userpassword";

var apiConnectAddress = "https://remoteaddress/service.svc";

var binding = new BasicHttpBinding
{
    UseDefaultWebProxy = false,
    ProxyAddress = new Uri(proxyHost)
    Security =
    {
        Mode = BasicHttpSecurityMode.Transport,
        Transport = 
        {
            ClientCredentialType = HttpClientCredentialType.None,
            ProxyCredentialType = HttpProxyCredentialType.Basic
        }
    }
};

var client = new Client(binding, new EndpointAddress(apiConnectAddress));

client.ClientCredentials.UserName.UserName = proxyUserName;
client.ClientCredentials.UserName.Password = proxyUserPassword;

client.SomeMethod(...); // an exception occurs here

class Client : System.ServiceModel.ClientBase<T> { ... }

Exception details:

System.ServiceModel.ProtocolException
    HResult=0x80131500
    Message=The remote server returned an unexpected response: (407) Proxy 
    Authentication Required.
    Source=System.Private.ServiceModel
    StackTrace:
        at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
        at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
        at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
        at System.ServiceModel.Channels.ServiceChannelProxy.TaskCreator.<>c__DisplayClass1_0.<CreateGenericTask>b__0(IAsyncResult asyncResult)
        at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
        at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
        at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()

As I understand it, the exception occurs because login and password are not transmitted to the proxy server. How to configure HttpBinding to successfully connect to the service via proxy?

PS. The app written on .Net Core 2.2

c#
wcf
proxy
asked on Stack Overflow Jul 2, 2019 by Vlad • edited Jul 2, 2019 by Vlad

1 Answer

1

According to the tips of the questioner, and as mentioned in the Github issue,
github.com/dotnet/wcf/issues/1592
There is no way to use proxy with authentication at present.
Thanks.

answered on Stack Overflow Jul 2, 2019 by Abraham Qian • edited Jul 3, 2019 by Abraham Qian

User contributions licensed under CC BY-SA 3.0