如何在 defaultProxy 配置设置中传递凭据? [英] How to pass credentials in defaultProxy config setting?
问题描述
客户端无法使用我的 webpart,因为他在代理服务器后面,他们需要指定用户名和密码才能通过代理.我现在在我的配置文件中有这个:
A client is unable to use my webpart because he is behind a proxy server and they need to specify a username and password to get past the proxy. I have this in my config file right now:
<system.net>
<defaultProxy>
<proxy usesystemdefault="False" proxyaddress="http://127.0.0.1:8888" bypassonlocal="True" />
</defaultProxy>
</system.net>
有没有办法为此代理设置提供用户名和密码?
Is there a way to supply a username and password to this proxy setting?
推荐答案
我不知道有什么方法可以在 web.config 的 defaultProxy 部分执行此操作,但您绝对可以从代码中执行此操作.试试这个:
I'm not aware of a way to do this in defaultProxy section of web.config, but you can definitely do it from code. Try this:
// Get proxy server info from AppSettings section of Web.Config
var proxyServerAddress = ConfigurationManager.AppSettings[ "proxyServerAddress" ];
var proxyServerPort = ConfigurationManager.AppSettings[ "proxyServerPort" ];
// Get proxy with default credentials
WebProxy proxy =new WebProxy(proxyServerAddress, proxyServerPort);
proxy.Credentials = System.Net.CredentialCache.DefaultCredentials();
Web.Config(配置部分):
Web.Config (configuration section):
<appSettings>
<add key="proxyServerAddress" value="proxy.myhost.com" />
<add key="proxyServerPort" value="8080" />
</appSettings>
然后将 proxy
分配给您在 webPart 中使用的 webClient.
And then assign proxy
to the webClient you are using in your webPart.
如果我做更多的功课,我就会意识到您的问题可以通过一个属性解决:useDefaultCredentials="true"
If I had done more homework, I would have realized your problem could have been fixed with one attribute: useDefaultCredentials="true"
<system.net>
<defaultProxy useDefaultCredentials="true">
<proxy usesystemdefault="False" proxyaddress="http://127.0.0.1:8888" bypassonlocal="True" />
</defaultProxy>
</system.net>
这篇关于如何在 defaultProxy 配置设置中传递凭据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!