我是 .Net Core 2 的新手,在尝试使用新的 .Net Core 2 Visual Studio 2017 MVC Web 应用程序访问(在这种特定情况下,但需要及时访问其他 Api)Azure AD 时遇到问题。
我正进入(状态
HttpRequestException:响应状态代码不表示成功:407(需要代理身份验证(ISA 服务器需要授权才能完成请求。拒绝访问 Web 代理过滤器。))。
这基本上意味着我们的公司代理服务器没有收到通过 ISA 服务器所需的凭据。
由于我们和我们的客户无法控制我们/他们的公司代理服务器,或者在客户的情况下,由于一切都被锁定,机器配置始终由我们的应用程序来提供 ISA 所需的正确凭据。使用 ASP.Net 只需将以下内容添加到 app.config 或 web.config 中,这在 Core 2 中显然不存在:
<system.net>
<defaultProxy useDefaultCredentials="true" />
</system.net>
通过运行应用程序的等效非核心版本,我已经证明这种解决方法应该可以解决问题。
但是,对于 .Net Core 2,我们还没有找到一种方法来实现这一点,无论是通过中间件读取配置文件,还是以编程方式,即在中间件中通过 WebProxy 类/IWebProxy 接口,后者已经尝试但没有成功 - 没有类在中间件中实例化的证据。
我在早期版本的 Core 中看到了人们建议实现 IWebProxy 的评论(似乎不再需要它,因为 WebProxy 类现在可用),但没有关于它是如何挂钩的信息。
我们如何告诉 .Net Core 2 MVC 应用程序在访问 Web 时使用默认凭据?