0

如何配置仅由一个特定的 Web 应用程序调用 Web 服务?两者都在同一个 IIS 服务器中。框架:2.0

我认为设置 web 服务的 web.config 就足够了。在这个例子中,我正在设置 web 服务的 web.config。Web服务只会被一个IP地址调用(127.0.0.1是IIS服务器的IP):

<location path="resources">
  <system.webServer>
    <security>
      <ipSecurity allowUnlisted="false">
        <clear/>
        <add ipAddress="127.0.0.1"/>
      </ipSecurity>
    </security>
  </system.webServer>
</location>

会好吗?

4

1 回答 1

1

如果它只被同一服务器上的一个特定应用程序调用,那么 Web 服务可能不是正确的选择。将代码放在同一个应用程序的一个类中会更有意义。Web 服务最适合多个应用程序需要访问相同功能的情况。

也就是说,随着 IPV6 的到来,您想到的选项将不起作用。如果您真的只是想限制对来自同一服务器的应用程序的请求,您可以将以下代码放入代码中以检查它是否来自本地服务器:

if(Request.IsLocal)
{
  //code here
}

为简单起见,您可以将以下内容放入 web 服务的 global.asax 文件中的 Application_BeginRequest 中:

if(!Request.IsLocal)
{
  throw new Exception("Only local requests are allowed");
}

这将有效地抵御任何不是来自本地主机的东西。

于 2012-08-06T19:57:49.380 回答