C# 仅在IIS服务器上本地运行时,将用户名和密码传递给经过身份验证的代理服务器。ASP核心2.0
我正在开发一个应用程序,该应用程序将部署在内部网(代理服务器)之外,但我正在代理服务器后面开发该应用程序。代理服务器使用http进行身份验证,并需要用户名和密码。是否有一种方法可以仅在本地运行(调试)应用程序时使用我的系统代理凭据?该应用程序是ASP核心2.0应用程序。 这是我使用的一段代码片段:我只希望在部署应用程序时运行调试时使用httpClientHandler,我不需要它,因为它部署在代理服务器之外。我怎样才能做到这一点C# 仅在IIS服务器上本地运行时,将用户名和密码传递给经过身份验证的代理服务器。ASP核心2.0,c#,asp.net-core,asp.net-core-2.0,http-proxy,C#,Asp.net Core,Asp.net Core 2.0,Http Proxy,我正在开发一个应用程序,该应用程序将部署在内部网(代理服务器)之外,但我正在代理服务器后面开发该应用程序。代理服务器使用http进行身份验证,并需要用户名和密码。是否有一种方法可以仅在本地运行(调试)应用程序时使用我的系统代理凭据?该应用程序是ASP核心2.0应用程序。 这是我使用的一段代码片段:我只希望在部署应用程序时运行调试时使用httpClientHandler,我不需要它,因为它部署在代理服务器之外。我怎样才能做到这一点 await new HttpClient(ProxyConfig.
await new HttpClient(ProxyConfig.httpClientHandler).SendAsync(request).ConfigureAwait(false);
public class ProxyConfig
{
public static WebProxy proxy = new WebProxy
{
Address = new Uri($"http://***.***.***.com:8080"),
BypassProxyOnLocal = false,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(userName: "****", password: "****")
};
public static HttpClientHandler httpClientHandler = new HttpClientHandler()
{
Proxy = proxy,
};
}
我建议在启动文件上注册HttpClient,并将其注入控制器或服务 检查环境(IHostingEnvironment),根据环境的不同,您可以使用代理处理程序或不使用代理处理程序注册HttpClient。当您在本地工作时,应该是开发阶段,您可以使用代理注册HttpClient。否则,您将在不使用代理设置的情况下使用HttpClient实例 下面是注册HttpClient的示例代码:
public class Startup
{
private readonly IHostingEnvironment hostingEnvironment;
public Startup(IHostingEnvironment hostingEnvironment)
{
this.hostingEnvironment = hostingEnvironment;
}
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
if(hostingEnvironment.IsDevelopment())
{
var httpClient = new HttpClient(new HttpClientHandler()
{
// Set your proxy details here
});
services.AddSingleton(httpClient);
}
else
{
services.AddSingleton<HttpClient, HttpClient>();
}
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc();
}
}
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
private readonly HttpClient httpClient;
public ValuesController(HttpClient httpClient)
{
this.httpClient = httpClient;
}
}