• 締切済み

IEの[新規作成(N)]→[ウィンドウ(W)]によるセッション管理。

お世話になります。 只今、ASP.NET(VB.NET)アプリケーションを製造しています。 ログイン情報などをセッションで管理しているのですが、IEの[ファイル(F)]→[新規作成(N)]→[ウィンドウ(W)]で新規にブラウザを表示すると同じ画面が表示されSession情報が共有されます。更にViewState情報も表示元のViewState情報がコピーされたような状態になってしまいます。 [ファイル(F)]→[新規作成(N)]→[ウィンドウ(W)]で新規にブラウザが開かれた際に「新たにSessionが確立される。」または新規で開かれたブラウザだと判断する事は可能でしょうか?? なお新規にブラウザが開かれた際には、サーバサイトのPage_Loadイベントは発生していませんでした。Bodyタグのonloadには反応しました。 非常に困っております。ご教授願います。

noname#30420
noname#30420

みんなの回答

回答No.2

お世話になります。 こちらをご覧下さい。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=30619&forum=12&6 http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp06/entwebapp06_06.html <引用> DHTMLを利用することで、ブラウザ上での操作をある程度制約することはできる。しかしこの方法は「悪意のない人たちの操作ミスによる誤動作を防ぐ」ためのものであり、悪意のある人たちによる不正操作や捏造データの送信を防げるものではない。 </引用> いかような手を使っても、 根本的な解決には至らないのが現状だと思われます。

noname#30420
質問者

お礼

ご回答ありがとう御座います。 やはり根本的な解決は難しいんですね。 どのレベルまでの小手先対応を行うか検討してみます。 ありがとう御座いました。

回答No.1

お世話になります。 参考 URL は JSP についてのお話ですが、 以下の部分は、サーバー側が何で実装してあろうと 同じ事が言えます。 スタートアップやショートカットから別々に立ち上げたブラウザは、別プロセスになります。 しかし、立ち上がっているブラウザから新規作成や"Ctrl+N"で立ち上げた場合は、同一プロセスとみなされます。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2240309
noname#30420
質問者

お礼

回答ありがとう御座います。 同一プロセス内で複数ブラウザが開かれている状態になるんですね。 となると…サーバーサイトで対応は無理として、クライアントサイトで新規作成や"Ctrl+N"で開かれたブラウザかの判断は可能なのでしょうか?? 最悪は新規作成や"Ctrl+N"などをさえない対応になるのかなと… ご教授お願い致します。

関連するQ&A

  • セッション管理

    file1.html内でアップロードされた画像をabc.phpに送り、 そのabc.php内でfile1.htmlでアップロードされた画像の編集処理を行う プログラムを組みました。 編集処理には1分かかります。 ユーザAの画像を編集処理中の 編集処理時間1分間の間にユーザB、ユーザCがfile1.htmlでファイルをアップロードしabc.phpに処理を求めてきた時、 ユーザB、ユーザCのブラウザに対し 「あなたは1人目の処理待ちユーザです」 「あなたは2人目の処理待ちユーザです」 といったような順番待ち表示をセッション管理を応用して表示させたいです 。 下のセッション管理プログラムを応用して順番待ち表示を行なう事はできないでしょうか? 編集処理のプログラムは組めています。 <?php session_start(); if (!isset($_SESSION["visited"])){ print('0'); $_SESSION["visited"] = 1; $_SESSION["date"] = date('c'); }else{ $visited = $_SESSION["visited"]; $visited++; print($_SESSION["visited"]); $_SESSION["visited"] = $visited; $_SESSION["date"] = date('c'); } ?>

    • 締切済み
    • PHP
  • JSPファイルでのセッション管理について

    はじめまして、こんにちは。JSPファイルについて教えてください。 今AというページとBというページがあります。 AはログインページでBはログインに成功した場合だけ表示されるようになっています。 Bのページをお気に入りにいれてAのページでログインせずに直接Bのページへ飛ぶとセッションで管理されているのかAのページが表示されてBのページがみれません。 これはプログラムで制御されているのでしょうか? AのページとBのページのソースを見ると最初に <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ page session="true" %> <%@ page import="AA.properties" %> となっているだけで他はただのHTML言語となっておりました。 Bのページでのセッション管理って <%@ page session="true" %> ここで行われているのでしょうか? それとも<%@ page import="AA.properties" %> のpropertiesっていうところでプログラムが走っているのでしょうか。 分かる方がいれば教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Perlでのセッション管理と不要セッション削除について

    いつもお世話になっています。 Perlにてセッション管理(ログインして、サイト内はユーザーIDなどを持ちまわるような)を行おうとしています。 CGI::Sessionを使用して実現できると思っているのですが、 疑問があります。 セッション情報の持ち方は、サーバー内にファイルか、DBに格納する ことになると思いますが、不要になったファイルやレコードは、 みなさんどうされているのでしょうか? (ログアウトボタンがあっても、ブラウザの閉じるボタンを押される ケースが多いと思いますので、必ずdelete()はできないですよね?) 削除バッチなどで定期的に削除することを考えていますが、 もっとスマートなやり方があればご教示いただければと思います。 よろしくおねがいします。

  • 右クリックの新規作成(W)と(N)

    エクスプローラーやデスクトップで右クリックすると、下の方に「新規作成(W)」がありますが、 たまにこれが「新規作成(N)」のものがあります。 同じWindowsの種類でも(W)と(N)のものが あったりするのですが、この違いは何が理由で違うのでしょうか? (N)のものを、(W)に変える事って出来るのでしょうか? (フォルダを作る時に、右クリックWF[Enter]と操作しているので(N)のパソコンだといつも 止まってしまうので疑問に思い質問しました)

  • セッション情報の作成

    BeatJamという音楽ソフトで、よく音楽データをCD-Rに書き込みます。全ての曲を書き込み終わるとセッション情報の作成中と表示されます。この「セッション情報の作成」の意味がわかりません。PC苦手なもので。これは私のPC内に保存されている写真などもCD-Rに書き込まれているのですか?

  • SessionとViewStateについて

    ASP.NET初心者です。(長文になります) ASP.NET(VS2005。VB)で、作成したWebアプリがあるのですが、 セッション→ViewStateについて、いまいちピンとこない部分がありまして、質問させていただきました。 A画面には、コード入力のテキストボックスと、ボタンが用意されています。 ボタン_Clickのイベントで、入力したコードをSession情報に登録した後、 別ウィンドウでB画面がポップアップ表示されるイメージです。(画面遷移ではないです) ※A画面のボタン_clickイベント内で、  「ScriptManager.RegisterClientScriptBlock(Me, Me.GetType, "popup", _   "window.open(B画面URL,'_blank','height=600~~~');", True)」で、Pageのオブジェクトに登録して、  B画面が起動されるイメージになると思います。 B画面では、Page_Loadイベント内の初回表示時「Not IsPostBack」のときだけ、 A画面で設定したSession情報を変数に設定した後、Session情報をクリアし、 変数に入れた情報をViewStateに登録して[ViewState(コード) = 変数に設定したコード]、 変数のコードを表示させています。 また、B画面は、自動で閉じるようにしたいのでTimerを使っています。 Timer_Tickイベントで、ViewStateに登録したコード取得して、値をDBに登録して、 B画面を閉じる、というのが一連の流れです。 ちなみに、A画面についてはB画面起動後、コード部分はクリアして、常駐しているイメージとなります。 そこで、気になるところが、 A画面でコード入力してボタン_Click→B画面表示→B画面を表示させたままA画面に戻って コード入力してボタン_Click→B画面表示→B画面を表示させたままA画面に戻って・・・というように、 A画面から、何度も繰り返してB画面を起動させたとき、 A画面で設定したSession情報の内容で、B画面のTimer_Tickで、正しく登録されるのか、というところです。 ViewStateについて調べたところ、ページ単位で値を保持してくれる(違うページ間では共有しない)みたいなので、 ViewStateのクリアをしない限り&B画面を閉じない限り、値はそれぞれの画面で保持できているはず。 B画面の1つ目((1)とします)はコードが111の情報、2つ目((2))は222、3つ目((3))は333の情報を、 B画面それぞれのPage_Load時にViewStateに登録しておけば、 B画面(1)のTimer_Tickで111、B画面(2)のTimer_Tickで222、B画面(3)のTimer_Tickで333がそれぞれ登録できると思っています。 このように連続で行うような画面操作で、 A画面で設定したSession情報が上書きされたりする(111が222になってしまうなど)可能性は、あるのでしょうか?

  • cookieoffとセッション管理について

    セションを使ったメールフォーム(入力画面→確認画面→メール送信→完了画面の4ファイル)を利用しています。 毎画面を表示させる直前で、セッションに保持している値を呼び出す設計です。 最近、セッション管理をcookieのみにした方がより安全だというサイトを見て、試しに今のメールフォームでブラウザ設定をcookieブロックにして試してみました。 ================================== ブラウザ  cookieブロック PHPの設定  session.use_cookies On On  session.use_only_cookies Off ================================== 予想では、cookieをブロックしているが、それ以外の手法も認めているため、URLの後ろに「.php?hogehoge~」と表示されると思っていたのですが何も表示されません。 そしてメールフォームも問題なく機能してしまいました。 ブラウザ側のcookie設定は「教えて!goo」で何度も再ログインが表示されたことから問題ないと思います。 個人的に原因かもと思っているのは ○メールフォームがローカルの状態で実験しているから ○メールフォームがSSL通信だから(でもローカル用なので偽の証明です;) どなたかどうしてなのか教えてください。お願いします。

    • 締切済み
    • PHP
  • Ctrl+N (新規ウィンドウ作成)を無効にするには?

    Webシステムを作っているのですが、 IEの画面上のメニューバーのファイル→新規作成→ウィンドウ(もしくは Ctrl+N ボタン)で 新しいウィンドウを同一の内容で表示できますが、これがちょっと不都合なんです。 Ctrl+N 機能が働かないようにするには、どうすればいいですか??? HTMLカテで質問させていただきましたが、ASP, JavaScript でもOKです!

  • セッション情報の作成

    BeatJamという音楽ソフトを使い音楽データをCD-Rに書き込むと最後に「セッション情報の作成中」と表示されます。これはPCの「お気に入り」のリストも書き込まれるのでしょうか?

  • IE9でセッションが保持できないのは?

    お世話になります。 現在会員サイトでindex.phpというファイルにアクセスする際にSESSION["id"]が空欄の場合、エラーページへ飛ばすというプログラムがあります。 ■index.php内のソース $headerLink = ""; if($_SESSION["id"] == ""){ $headerLink = "../error.php"; header("location:".$headerLink); } var_dump($_SESSION["id"] ); IE9の場合のみ上記でエラーページに飛ばされてしまい、その他のブラウザ(FireFox、Chrome、IE8以下)ではエラーが表示されないのですが、IE9では何か特別なSESSIONへの条件などがあるのでしょうか? var_dumpを確認してもいずれも値が入っていました。 (ちなみに上記のエラーページに飛んでしまうのは「IE9を開いて初回ログイン(index.php)にアクセスした場合のみです。エラーページにジャンプ後、再度ログインをしindex.phpにアクセスするとエラーはでなくなります)

    • ベストアンサー
    • PHP