0

私には課題があり、洞察を提供できる私より賢い開発者がいると思います。

Webサービスがあります。このWebサービスは、C#のASP.NETMVCで記述されています。開発者がこのWebサービスを呼び出せるようにしたい。開発者がコードを書いているとき、私はWebアプリが通常ローカルホストから実行されることを認識しています。彼らがこのサービスを呼び出すとき、私はリクエストがローカルホストから来ているかどうかを識別できるようにしたいと思います。ただし、IPアドレスを見ると、そのマシンのIPアドレスです。

これを行う方法はありますか?私のWebサービスはまったく別のマシンで実行されているため、明らかにRequest.IsLocalは機能しません。

4

3 に答える 3

1

Webサービスを呼び出すと、ブラウザーは通常、Refererヘッダーのページを渡します。したがって、その値が「http://localhost」で始まるかどうかを確認できます。httpリクエストの事実上すべて(これを含む)が偽造される可能性があるため、このデータに基づいてどのような決定を下すかに注意してください。

于 2012-12-21T01:32:41.210 に答える
0

アプリからのリクエストと一緒にいくつかの追加データを渡さなければ、あなたが知る方法はありません。

Webサービスへのリクエストに使用されたIPアドレスまたはホスト名のみを取得できます。リクエストの作成に使用されたホスト名(localhost)を検索できるようにしたいようです。アプリ(Webサービスへの呼び出しをトリガーします)。

于 2012-12-20T18:36:59.270 に答える
0

次に、(サービスの観点から)ローカルをどのように定義しますか?これを推測するのではなく、別のAPIエンドポイントで開発サービスを設定することをお勧めします。

すべての本番レベルのAPI呼び出しはapi.yourservice.com、を介して着信するすべての開発レベルのリクエストのようなものになりますdev.yourservice.com

次に、2つの別々のサービスを使用するか、サービスに要求されているURLを読み取らせ、これに基づいて区別することができます。

于 2012-12-20T18:37:12.693 に答える