【发布时间】:2019-10-25 12:08:51
【问题描述】:
我有一个用 ASP.NET WebForms 编写的网站,它可以访问用 ASP.NET WebAPI 编写的 Web 服务。为了安全起见,我关闭了 8079 端口(Web 服务),这样 Web 服务只能通过网站访问,而无法直接从 Internet 请求 Web 服务。当我通过 Fiddler 程序请求网站上的页面时,我看到了对网站的请求,但没有看到来自网站的对 Web 服务的请求。一切正常。但现在我制作了另一个用 AngularJS 编写的网站,我希望这个网站也能访问我封闭的网络服务。这可以通过AngularJS实现吗?下面是通过 ASP.NET 网站请求 Web 服务的代码。
HttpResponseMessage response =
client.GetAsync("http://localhost:8079/api/values/5").Result;
if (response.IsSuccessStatusCode)
{
Task<string> data = response.Content.ReadAsStringAsync();
result += data.Result;
}
因此,站点 (AngularJS) 和 ASP.Net MVC Web 应用程序应该在 Internet 上可用,并且 Web 服务 (ASP.NET WebAPI) 应该无法在 Internet 上使用。
【问题讨论】:
-
您可能必须将您的 Web 服务暴露给互联网,并使用某种形式的身份验证来保护它(例如 JWT)
-
请记住,您的 AngularJS 网站,所有代码都在客户端浏览器上执行,而不是您的服务器。所以需要暴露...
标签: c# asp.net angular rest asp.net-web-api