2

いくつかの.aspxページで構成されているASP.NETアプリケーションがあります。これらの.aspxページの1つに、特定のIPセットのみがアクセスできるようにしたい。これは可能ですか?

WebサイトレベルでIPホワイトリストを作成できることは知っていますが、アプリケーションの単一のURLのIPホワイトリストを作成できますか?

4

3 に答える 3

3

残念ながら、IISを介して単一のページでそれを行うことはできないと確信しています(検証が必要な場合は、Serverfault.comで詳細を確認してください)が、プログラムで行う場合は、グローバルでApplication_BeginRequestをフックできます。 asaxファイル。リクエストURLとリクエストIPアドレスを制限に照らして確認し、それらが合格した場合にのみリクエストの続行を許可します。

于 2010-08-01T01:07:21.650 に答える
3

次のリソースは、ASP.NETでクライアントIPを検出する方法を示しています。

http://bytes.com/topic/asp-classic/answers/439176-how-get-clients-ip-address-asp-net

IPを取得したら、おそらくInitイベント中に(ページ内の場合)、選択したストレージメカニズムからホワイトリストをロードし、IPが一致しない場合は、次のように応答します(HttpContext.Current.Responseページ内にない場合に使用:

if (!mySafeIpList.Contains(clientIP))
{
    Response.Clear()
    Response.StatusCode = (int)HttpStatusCode.Unauthorized
    Response.End()
}

または、単に有効なページにリダイレクトします。

Response.Redirect("~/Head-Fake.aspx")

これがお役に立てば幸いです。

于 2010-08-01T01:07:29.687 に答える
1

Request.ServerVariables ["REMOTE_HOST"]は、アプリ内の独自のホワイトリストといつでも確認できます。

于 2010-08-01T01:06:58.963 に答える