是的,可以在不修改当前代码的情况下指定您自己的凭据。尽管如此,它仍然需要一小段代码。
创建这个类叫做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;
}
}
}
添加到您的配置文件:
<defaultProxy enabled="true" useDefaultCredentials="false">
<module type = "SomeNameSpace.MyProxy, SomeAssembly" />
</defaultProxy>
这种 “内喷射” 列表中的一个新的代理,并且由于没有默认凭证,因此WebRequest类将首先调用您的代码并请求您自己的凭证。您需要将组装的SomeAssembly放置在CMS应用程序的bin目录中。
这是一个静态代码,为了获得所有的字符串,比如用户名,密码和URL,你可能需要实现自己的ConfigurationSection,或者在AppSettings中添加一些信息,这样更容易。
我打算把这个标记为答案,因为它看起来好像它应该工作,但是我仍然遇到连接问题,到ISA Server比什么都重要.. – spmason 2008-10-13 20:09:00
这真是太好了。 – Lalit 2010-05-25 13:18:11