0

私のアプリケーションでは、URLが特定のIPアドレスでアクセスされていることを確認したいと思います。ページを表示する必要があるのは1回だけで、次回はそのページに移動するときにページが表示されないようにする必要があります。

どうすればこれを達成できますか?

よろしく、プラサド

4

5 に答える 5

3

私は最近これを使用して、失敗したログインにユーザーを記録するためのユーザーのIPアドレスを識別しました。

// Look for a proxy address first
var IP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
//Trim and lowercase IP if not null
if (IP != null)
{
    IP = IP.ToLower().Trim();
}
if (IP == null || IP.Equals("unknown"))
{
    //If IP is null use different detection method else pull the correct IP from list.
    IP = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToLower().Trim();
}

String[] IPs = null;
if (IP.IndexOf(",") > -1)
{
    IPs = IP.Split(',');
}
else
{
    IPs = new string[] { IP };
}

(注:VB.NETから変換)

于 2012-10-19T10:20:25.670 に答える
2

実際にページをクライアントごとに1回表示するのか、それともIPごとに1回だけ表示するのか。

クライアントマシンベースの場合は、そのページにCookieを保存させ、その存在を確認して、そのページが以前にアクセスされたことがあるかどうかを判断します。

于 2012-10-19T10:19:10.507 に答える
2

データベースにIPアドレスを保存してみるか、Cookie変数を利用することができます。クッキーについてもっと読む

于 2012-10-19T10:20:38.770 に答える
1

ここで提案および説明されているように:ASP.NETでユーザーのクライアントIPアドレスを取得するにはどうすればよいですか?

あなたはこれをチェックすることができますPage_Load

Request.ServerVariables["REMOTE_ADDR"];

また、別のページに移動するために使用できるようになったら、アクセスがすでに行われている場合Server.Transfer(警告ページやホームページに戻るなど)。

どのIPがページに一度アクセスしたかを永続化する方法は、セッション、アプリケーションキャッシュ、データベース、Cookieなどのニーズに応じて決まります。

于 2012-10-19T10:17:13.893 に答える
0

ページがロードされたら、IPアドレスを取得してデータベースに保存します。次に、ページがロードされたときにも、データベース内の可能なエントリに対してIPを確認します。存在しない場合は、保存してページを読み込みます。それが存在する場合は、ユーザーまたは何かをリダイレクトします。

于 2012-10-19T10:17:14.827 に答える