WebProxy.IsBypassed和Proxy.pac

时间:2017-11-14 02:19:16

标签: c# .net webproxy

我目前正在为企业环境开发.net组件。它需要与使用SSH传输文件的第三方公司交谈。同一个组件也支持FTP与不同方进行通信。

在我尝试依赖WebProxy.IsBypassed方法告诉我目标Uri是否需要让代理服务器进行身份验证之前,一切正常。

我有app.config文件设置:

<defaultProxy enabled="true" useDefaultCredentials="true">
    <proxy scriptLocation="http://address/proxy.pac"/>
</defaultProxy>

如果目标Uri为ftp://202.100.1.1:5500,则IsBypassed方法正确返回&#39; False&#39;,这正是我的预期。如果我将相同的Uri更改为ssh://202.100.1.1:5500,则IsBypassed方法返回&#39; True&#39;。

我已经测试了这个proxy.pac文件,它在ftp和ssh场景下都能正常工作。

我想知道.net实际使用这个pac文件,同时确定IsBypassed方法的真或假值?

我注意到的一件事是,如果我在app.config文件中键入地址,则visual studio会将其识别为链接,例如ftp://202.100.1.1:5500,然后IsBypassed方法总能返回预期的结果。如果我键入ssh://202.100.1.1:5500,则visual studio无法将其识别为链接,则IsBypassed方法始终返回false值。

Stack Overflow还会将带有FTP的uri自动转换为链接,但将SSH保留为纯文本。

有没有人对此有任何想法?

0 个答案:

没有答案