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:
客户端无法使用我的webpart,因为他位于代理服务器后面,他们需要指定用户名和密码才能通过代理。我现在在配置文件中有这个:
<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?
有没有办法为这个代理设置提供用户名和密码?
1 个解决方案
#1
12
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:
我不知道在web.config的defaultProxy部分执行此操作的方法,但您绝对可以从代码中执行此操作。试试这个:
// 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 (configuration section):
Web.Config(配置部分):
<appSettings>
<add key="proxyServerAddress" value="proxy.myhost.com" />
<add key="proxyServerPort" value="8080" />
</appSettings>
And then assign proxy
to the webClient you are using in your webPart.
然后将代理分配给您在webPart中使用的webClient。
EDIT:
If I had done more homework, I would have realized your problem could have been fixed with one attribute: useDefaultCredentials="true"
如果我做了更多的功课,我会意识到你的问题可以用一个属性修复:useDefaultCredentials =“true”
<system.net>
<defaultProxy useDefaultCredentials="true">
<proxy usesystemdefault="False" proxyaddress="http://127.0.0.1:8888" bypassonlocal="True" />
</defaultProxy>
</system.net>
#1
12
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:
我不知道在web.config的defaultProxy部分执行此操作的方法,但您绝对可以从代码中执行此操作。试试这个:
// 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 (configuration section):
Web.Config(配置部分):
<appSettings>
<add key="proxyServerAddress" value="proxy.myhost.com" />
<add key="proxyServerPort" value="8080" />
</appSettings>
And then assign proxy
to the webClient you are using in your webPart.
然后将代理分配给您在webPart中使用的webClient。
EDIT:
If I had done more homework, I would have realized your problem could have been fixed with one attribute: useDefaultCredentials="true"
如果我做了更多的功课,我会意识到你的问题可以用一个属性修复:useDefaultCredentials =“true”
<system.net>
<defaultProxy useDefaultCredentials="true">
<proxy usesystemdefault="False" proxyaddress="http://127.0.0.1:8888" bypassonlocal="True" />
</defaultProxy>
</system.net>