在 IIS Express 中托管 webapi,因此它只能由父 Web 应用程序访问

Posted

技术标签:

【中文标题】在 IIS Express 中托管 webapi,因此它只能由父 Web 应用程序访问【英文标题】:Host a webapi in IIS Express so it can only be accessed by a parent web application 【发布时间】:2020-02-11 20:00:44 【问题描述】:

我有 2 个独立的 webapi 应用程序,我希望第一个是普通的 webapi 应用程序,任何授权的人都可以通过 Internet 访问它。对于第二个,我需要它不能公开访问并且只对第一个可用(因此第二个应用程序以某种方式“嵌套”在第一个应用程序中)。 谁能告诉我如何实现这一点(应用程序目前托管在 IIS Express 中,但将在 iis 中用于生产)? 非常感谢

【问题讨论】:

您可以使用 URL 重写模块来阻止外部访问,因为只有在其规则中您才能检查 URL 和传入的 IP 地址。 您的问题解决了吗?如果您的问题解决了,那么我请求您将有用的建议标记为答案。这将帮助面临同样问题的其他人。 【参考方案1】:

如果您关心安全性(每个人都应该如此),您可以将 IIS 配置为仅允许特定计算机、计算机组或域访问您的网站。流程如下:

1)打开 IIS 控制台并转到您网站的属性。

2)双击IP地址和域限制。

3)单击添加允许条目...(在右侧窗格中)以添加允许访问该网站的 IP 地址或 IP 地址范围。单击确定。 重复此步骤以将其他 IP 地址添加到列表中。

添加允许的 IP 地址后,单击编辑功能设置...,然后为未指定的客户端选择拒绝访问。点击确定。

现在,只有指定 IP 地址的用户才能访问该网站。

【讨论】:

以上是关于在 IIS Express 中托管 webapi,因此它只能由父 Web 应用程序访问的主要内容,如果未能解决你的问题,请参考以下文章

WebApi的{“消息”:“发生错误”}在IIS7上,而不是在IIS Express中

IIS 中托管的 WebAPI 中的 CORS 问题

具有自托管或 IIS 选项的 WebAPI

使用 IIS Express 托管网站(临时)

从 Web API 访问 IIS Express

在 IIS 7.5 中托管的 Web Api 中找不到 HTTP 404 页面