5

WCF にカスタム プロキシ アドレスとカスタム資格情報を提供することは可能ですか?

私はstackoverflowでこの答えを見つけました: How to set proxy with credentials to generated WCF client? 、しかし、複雑な問題があります。認証しているサービスは独自の認証を使用しているため、2 つの資格情報セットを使用する必要があります (1 つはプロキシを通過するため、もう 1 つはサービスに対して認証するため)。

サービス資格情報を提供するために、他の質問への回答で説明されている手法を使用しています。例えば

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

次のようなものを使用して、プロキシのアドレスを設定できます。

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

事実上 2 セットの資格情報を設定するにはどうすればよいですか? (注意: プロキシと実際のサービスの認証情報は異なります!) また、プロキシの詳細は、必ずしもデフォルトのシステム プロキシの詳細ではないことに注意してください。

4

2 に答える 2

14

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),
};

プロキシ サーバーに関する私のブログ投稿には、詳細が含まれています。

于 2010-01-21T18:05:33.530 に答える
2

設定しているクライアント資格情報は、サービスを認証するために問題ありません。
プロキシ認証の場合、HttpTransportSecurity.ProxyCredentials を使用する必要があります。

このリンクはあなたを助けるかもしれません。

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

于 2008-10-09T13:02:08.153 に答える