0

Webサービスが1つの特定のWebアプリケーションによってのみ呼び出されるように構成するにはどうすればよいですか?どちらも同じIISサーバーにあります。フレームワーク:2.0

Webサービスのweb.configを設定するだけで十分だと思います。この例では、Webサービスのweb.configを設定しています。Webサービスは1つの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

同じサーバー上の 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");
}

これにより、localhost から来ていないものを効果的に回避できます。

于 2012-08-06T19:57:49.380 に答える