在我的公司环境中,有一个透明代理需要凭证才能访问互联网(每四小时)。在我的应用程序成功通过的凭据是这样的:透明代理在通过https访问时出现SSL错误
var client = new WebClient();
client.Credientals = new NetworkCredential("username", "password");
string result = client.DownloadString("http://...");
// this works!
然而,当我INTIAL请求是一个“https://开头的” URL,有一个异常抛出:“基础连接已关闭:无法建立信任关系为SSL/TLS安全通道。“
现在我目前的解决办法是:
- 渔获引发WebException抛出访问时“https://开头的” URL
- 添加我的凭据到一个新的请求到任意的“http:// “网站
- (这应该‘开放’互联网四小时的窗口)
- 回去再试试‘https://开头’请求
我想知道是否有更好/更清洁的方法来做到这一点?
这似乎是一个坏主意。你真的想在清晰的情况下公开潜在的敏感数据吗? – 2011-12-22 19:31:43
没有敏感数据通过明文发送(据我所知)。我添加到通用“http”请求的凭证被透明代理拦截。然后我重试了原始的“https”请求(自透明代理认证了我之后,它现在起作用) – Brandon 2011-12-22 19:36:08
听起来你正在构建更多的中间人或传递服务器而不是真正的代理服务器(类似但是不同)。无论哪种方式,如果您允许代理的用户允许任何网站通过它,您可能会暴露敏感数据。 – 2011-12-22 19:40:48