.net 如何通过托管服务器路由Angular API调用?

.net 如何通过托管服务器路由Angular API调用?,.net,angular,.net-core,firewall,.net,Angular,.net Core,Firewall,我有一个带有angular 7前端和dotnet core 2.2 API的应用程序。API存在于受保护的公司服务器上,而角度前端存在于托管服务器上。前端托管服务器的ip在API服务器的防火墙上被列为白名单,但由于API调用来自用户的ip而不是托管服务器的ip,因此所有请求都被阻止 例如,如果用户1具有IP A并从前端应用程序发出请求,则它将使用IP A而不是IP B(前端服务器的IP)来命中API服务器。然后请求被阻止,因为只有IP B被列入白名单 有办法解决这个问题吗?我可以强制请求来自前端

我有一个带有angular 7前端和dotnet core 2.2 API的应用程序。API存在于受保护的公司服务器上,而角度前端存在于托管服务器上。前端托管服务器的ip在API服务器的防火墙上被列为白名单,但由于API调用来自用户的ip而不是托管服务器的ip,因此所有请求都被阻止

例如,如果用户1具有IP A并从前端应用程序发出请求,则它将使用IP A而不是IP B(前端服务器的IP)来命中API服务器。然后请求被阻止,因为只有IP B被列入白名单


有办法解决这个问题吗?我可以强制请求来自前端服务器的IP吗?

您可以做的是将操作详细信息从angular app发送到托管服务器。然后根据操作细节确定需要调用哪个API。来自dotnet core的API调用。并将结果发送回您的客户。所以,托管服务器充当API和客户端之间的网关


这也取决于你在做什么。如果您有一个选项,那么如果平台存在限制,您可以在NodeJS中写入此网关。

这是意料之中的,是客户端发出请求,而不是服务器

在Angular前端所在的服务器上,创建一个简单的代理,接收来自客户端的API请求,然后将它们转发到内部服务器。您几乎可以用服务器支持的任何语言编写它


然后更新Angular应用程序以指向此新URL,所有对内部API服务器的请求都将来自您的白名单IP。

我不确定是否遵循。您是否建议本质上使用中间人API,从前端服务器调用真正的API服务器?这就是我想要避免的。是的。这就是我的建议。