首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态使用带有WPAD的WebProxy脚本

动态使用带有WPAD的WebProxy脚本
EN

Stack Overflow用户
提问于 2012-01-17 21:52:09
回答 2查看 4.8K关注 0票数 6

我正在尝试调用call服务。我需要使用一个使用WPAD脚本的代理。此WPAD脚本的URL因应用程序的不同部署而不同。

尽管IE具有正确的代理设置,但该应用程序作为windows服务在本地系统帐户下运行,因此该应用程序不知道该windows用户的IE设置。

将以下内容放入app.config中:

代码语言:javascript
复制
<system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true" >
        <proxy autoDetect="True" scriptLocation="http://url.to/wpad.dat"/>
    </defaultProxy>
</system.net>

但这有一个限制,即它不能由用户配置。有没有办法从(C#-)代码中动态地做上面的事情?我还怀疑上面的内容会改变不应该通过代理的but服务的行为(但我还没有证实)。

http://msdn.microsoft.com/en-us/library/system.net.webproxy.aspx上,我找到了有用的文本:“(有关使用WPAD特性的示例,请参阅IWebProxyScript类的文档。)”但是我没有找到这个例子:(.

EN

回答 2

Stack Overflow用户

发布于 2012-01-24 22:33:10

这篇关于代码项目的文章展示了如何使用windows APIs执行PAC脚本并返回给定url:http://www.codeproject.com/Articles/12168/Using-PAC-files-proxy的正确代理详细信息。

您可以使用该函数找出代理详细信息,然后直接配置web服务对象代理,或者更改WebRequest.DefaultProxy。

票数 1
EN

Stack Overflow用户

发布于 2014-03-08 02:27:14

WebProxy本身在内部使用IWebProxyScript。

如果您使用指向WPAD脚本的URL初始化WebProxy,它将为传递给它的请求解析正确的URL。您可以将该WebProxy设置为WebRequest,它将自动处理为请求目标设置正确的代理URL。

代码语言:javascript
复制
WebRequest request = WebRequest.Create("http://targeturl");
request.Proxy = new WebProxy("http://url.to/wpad.dat");

您还可以获取给定目标的代理URL,如下所示:

代码语言:javascript
复制
WebProxy proxy = new WebProxy("http://url.to/wpad.dat");    
Uri proxyUri = proxy.GetProxy(new Uri("http://targeturl"));

这不适用于PAC脚本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8895754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档