我需要配置网站以通过代理访问另一台计算机上的Web服务。我可以将网站配置为使用代理,但我找不到指定代理所需凭据的方法,这可能吗?以下是我的当前配置:
<defaultProxy useDefaultCredentials="false">
<proxy usesystemdefault="true" proxyaddress="<proxy address>" bypassonlocal="true" />
</defaultProxy>
我知道你可以通过代码做到这一点,但该网站运行的软件是一个封闭源代码的CMS,所以我不能这样做。
有什么办法可以做到这一点吗?MSDN是没有帮助我太多..
5条答案
按热度按时间6rqinv9w1#
是的,可以指定您自己的凭证而不修改当前代码。不过这需要您的一小段代码。
使用此类创建名为 SomeAssembly.dll 的程序集:
将以下内容添加到配置文件:
这将在列表中“注入”一个新的代理,并且由于没有默认的凭据,WebRequest类将首先调用您的代码并请求您自己的凭据。您需要将汇编SomeAssembly放在CMS应用程序的bin目录中。
这是一段静态代码,要获得所有字符串,如用户、密码和URL,您可能需要实现自己的ConfigurationSection,或者在AppSettings中添加一些信息,这要容易得多。
iezvtpos2#
虽然我还没有找到在web.config中指定代理网络凭据的好方法,但您可能会发现仍然可以使用非编码解决方案,方法是在web.config中包含以下内容:
要做到这一点,关键是更改IIS设置,确保运行进程的帐户可以访问代理服务器。如果您的进程在LocalService或NetworkService下运行,那么这可能无法工作。很可能,您需要一个域帐户。
djp7away3#
可以通过在Windows凭据管理器中添加代理服务器的新通用凭据来指定凭据:
1在Web.config中
1.在控制面板\所有控制面板项目\凭据管理器〉〉添加一般凭据
Internet或网络地址:您的代理地址
用户名:您的用户名
密码:您通过
这种配置对我来说很有效,无需更改代码。
djmepvbi4#
目录服务/LDAP查找可用于此目的。它涉及基础架构级别的一些更改,但大多数生产环境都有这样的配置
isr3a4wc5#
虽然它很晚,但它可能是有帮助的人寻找解决相同的问题。我遇到了这个问题后,有相同的问题。我给我的解决方案的问题,我是如何使它工作。我创建了代理使用使用凭据像这样,
然后你必须像这样在DI容器中注册HttpClient,它将完美地工作。