当前位置:  开发笔记 > 编程语言 > 正文

是否可以在web.config中指定代理凭据?

如何解决《是否可以在web.config中指定代理凭据?》经验,为你挑选了3个好方法。

我需要配置一个网站,通过代理访问另一台机器上的Web服务.我可以将网站配置为使用代理,但我找不到指定代理所需凭据的方法,这可能吗?这是我目前的配置:


    

我知道你可以通过代码来做到这一点,但网站运行的软件是一个闭源CMS,所以我不能这样做.

有没有办法做到这一点?MSDN对我帮助不大..



1> Jerome Laban..:

是的,可以在不修改当前代码的情况下指定您自己的凭据.它需要你的一小部分代码.

使用此类创建名为SomeAssembly.dll的程序集:

namespace SomeNameSpace
{
    public class MyProxy : IWebProxy
    {
        public ICredentials Credentials
        {
            get { return new NetworkCredential("user", "password"); }
            //or get { return new NetworkCredential("user", "password","domain"); }
            set { }
        }

        public Uri GetProxy(Uri destination)
        {
            return new Uri("http://my.proxy:8080");
        }

        public bool IsBypassed(Uri host)
        {
            return false;
        }
    }
}

将其添加到您的配置文件中:


  

这会在列表中"注入"一个新代理,并且由于没有默认凭据,WebRequest类将首先调用您的代码并请求您自己的凭据.您需要将汇编SomeAssembly放置在CMS应用程序的bin目录中.

这是一个静态代码,要获取用户,密码和URL等所有字符串,您可能需要实现自己的ConfigurationSection,或者在AppSettings中添加一些信息,这样更容易.



2> Scott Fergus..:

虽然我没有找到在web.config中指定代理网络凭据的好方法,但您可能会发现仍然可以使用非编码解决方案,方法是将其包含在web.config中:

  
    
      
    
  

实现这一目标的关键因素是更改IIS设置,确保运行该进程的帐户可以访问代理服务器.如果您的进程在LocalService或NetworkService下运行,那么这可能不起作用.有可能,您需要一个域帐户.



3> 小智..:

您可以通过在Windows凭据管理器中添加代理服务器的新的通用凭据来指定凭据:

1在Web.config中

    
      
      
    

    在凭据管理器中>>添加通用凭据

互联网或网络地址:您的代理地址
用户名:您的用户名
密码:您通过

此配置对我有效,无需更改代码。

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有