Аутентификация прокси Http по WCF - PullRequest
5 голосов
/ 09 октября 2008

Можно ли предоставить WCF настраиваемый адрес прокси-сервера и учетные данные?

Я нашел ответ на stackoverflow: Как установить прокси с учетными данными для сгенерированного клиента WCF? , но у меня возникли сложности, служба, против которой я проверяю, использует свою собственную аутентификацию поэтому мне нужно использовать два набора учетных данных (один для прохождения через прокси, а другой для аутентификации в службе)

Я использую технику, описанную в ответах на другой вопрос, для предоставления учетных данных службы. например,

client.ClientCredentials.UserName.UserName = username;
client.ClientCredentials.UserName.Password = password;

Я могу установить адрес прокси, используя что-то вроде этого:

(client.Endpoint.Binding as WSHttpBinding).ProxyAddress = ...;

Как мне задать два набора учетных данных? (Примечание: учетные данные для прокси-сервера и фактической службы различаются!) Также обратите внимание, что данные прокси-сервера не обязательно являются данными прокси-сервера системы по умолчанию.

Ответы [ 2 ]

13 голосов
/ 21 января 2010

Если вы установите свойство WebRequest.DefaultWebProxy для нового WebProxy с учетными данными, WCF будет использовать его для всех отправляемых им HTTP-запросов. (Это повлияет на все HttpWebRequests, используемые приложением, если явно не переопределено).

// get this information from the user / config file / etc.
Uri proxyAddress;
string userName;
string password;

// set this before any web requests or WCF calls
WebRequest.DefaultWebProxy = new WebProxy(proxyAddress)
{
    Credentials = new NetworkCredential(userName, password),
};

Мой пост в блоге на прокси-серверах содержит дополнительную информацию.

2 голосов
/ 09 октября 2008

Учетные данные клиента, которые вы устанавливаете, подходят для аутентификации в ваших службах.
Для проверки подлинности прокси вам необходимо использовать HttpTransportSecurity.ProxyCredentials.

Эта ссылка может вам помочь.

http://msdn.microsoft.com/en-us/library/system.servicemodel.httptransportsecurity.proxycredentialtype.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...