mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-22 19:36:11 +00:00
f2ac1ece55
add
94 lines
3.6 KiB
C#
94 lines
3.6 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: Microsoft.InfoCards.HttpProxyTransportBindingElement
|
|
// Assembly: infocard, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
|
|
// MVID: 516D8B44-4448-4D2C-8B8E-FFBB3FFE472B
|
|
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00000-msil\Virus.Win32.Expiro.w-69bb73081eac86b8cf86f45e33515d0095855636967076e2b593d7a30cd80a07.exe
|
|
|
|
using Microsoft.InfoCards.Diagnostics;
|
|
using System.Net;
|
|
using System.ServiceModel.Channels;
|
|
|
|
namespace Microsoft.InfoCards
|
|
{
|
|
internal class HttpProxyTransportBindingElement : TransportBindingElement
|
|
{
|
|
private HttpTransportBindingElement innerHttpTransport;
|
|
private IWebProxy proxy;
|
|
|
|
public static BindingElementCollection ReplaceHttpTransportWithProxy(
|
|
BindingElementCollection bindingElements,
|
|
IWebProxy proxy,
|
|
bool turnOffClientAuthOnTransport)
|
|
{
|
|
int index1 = -1;
|
|
for (int index2 = 0; index2 < bindingElements.Count; ++index2)
|
|
{
|
|
if (bindingElements[index2] is HttpTransportBindingElement)
|
|
{
|
|
index1 = index2;
|
|
break;
|
|
}
|
|
}
|
|
if (index1 == -1)
|
|
return bindingElements;
|
|
InfoCardTrace.Assert(index1 == bindingElements.Count - 1, "Transport should be last in the Binding Element list");
|
|
HttpTransportBindingElement bindingElement = (HttpTransportBindingElement) bindingElements[index1];
|
|
if (turnOffClientAuthOnTransport)
|
|
bindingElement.AuthenticationScheme = AuthenticationSchemes.Anonymous;
|
|
HttpProxyTransportBindingElement transportBindingElement = new HttpProxyTransportBindingElement(proxy, bindingElement);
|
|
bindingElements[index1] = (BindingElement) transportBindingElement;
|
|
return bindingElements;
|
|
}
|
|
|
|
private HttpProxyTransportBindingElement(
|
|
IWebProxy proxy,
|
|
HttpTransportBindingElement innerHttpTransport)
|
|
{
|
|
this.innerHttpTransport = innerHttpTransport;
|
|
this.proxy = proxy;
|
|
}
|
|
|
|
private HttpProxyTransportBindingElement(HttpProxyTransportBindingElement elementToBeCloned)
|
|
: base((TransportBindingElement) elementToBeCloned)
|
|
{
|
|
this.innerHttpTransport = elementToBeCloned.innerHttpTransport;
|
|
this.proxy = elementToBeCloned.proxy;
|
|
}
|
|
|
|
public override long MaxBufferPoolSize
|
|
{
|
|
get => this.innerHttpTransport.MaxBufferPoolSize;
|
|
set => this.innerHttpTransport.MaxBufferPoolSize = value;
|
|
}
|
|
|
|
public override long MaxReceivedMessageSize
|
|
{
|
|
get => this.innerHttpTransport.MaxReceivedMessageSize;
|
|
set => this.innerHttpTransport.MaxReceivedMessageSize = value;
|
|
}
|
|
|
|
public override string Scheme => this.innerHttpTransport.Scheme;
|
|
|
|
public override IChannelFactory<TChannel> BuildChannelFactory<TChannel>(
|
|
BindingContext context)
|
|
{
|
|
this.innerHttpTransport.Proxy = this.proxy;
|
|
return this.innerHttpTransport.BuildChannelFactory<TChannel>(context);
|
|
}
|
|
|
|
public override IChannelListener<TChannel> BuildChannelListener<TChannel>(
|
|
BindingContext context)
|
|
{
|
|
return this.innerHttpTransport.BuildChannelListener<TChannel>(context);
|
|
}
|
|
|
|
public override bool CanBuildChannelFactory<TChannel>(BindingContext context) => this.innerHttpTransport.CanBuildChannelFactory<TChannel>(context);
|
|
|
|
public override bool CanBuildChannelListener<TChannel>(BindingContext context) => this.innerHttpTransport.CanBuildChannelListener<TChannel>(context);
|
|
|
|
public override BindingElement Clone() => (BindingElement) new HttpProxyTransportBindingElement(this);
|
|
|
|
public override T GetProperty<T>(BindingContext context) => this.innerHttpTransport.GetProperty<T>(context);
|
|
}
|
|
}
|