
No.4ベストアンサー
- 回答日時:
最近はJavaScriptで制御、ってのはやらないですね。
ユーザさんによって環境が違ったりしますし。
(統一された環境ならいいんですが。。。)
サーバ側の処理が望ましいです。
タイムアウトの時間を決めれば、Application変数で実現可能だと思うんですけど、いかがでしょう?(未確認)
ご存知かと思いますが、Application変数とはSession変数と違って、みんなで共有する変数です。(ちょっと違うかも)
Session変数はユーザごとに別の値を持ちますが、Application変数は全ユーザ共通の値を持ちます。
サーバ再起動まで、変数の中身は保持されます。
1.そのページにアクセスした時に、最初にアプリケーション変数A(以下、変数A)を見ます。
2.変数Aで現在ログインしているか(on)、していないか(off)判断します。
3.誰もログインしていない場合は、変数Aに「on」を入れて入室。その時、アプリケーション変数B(以下、変数B)に、入室時間を格納します。
4.変数Aがonだけど、変数Bの入室時間を見たらタイムアウトになっていたら、入室可能とする。
正確にはもう少し制御を考えないといけないですが、こんな感じでやればそんなに難しい話ではないと思います。
よろしければこの方法でお試し下さい。
教えていただいた方法で実現を検討してみたのですが、諸事情により、今回は別の手段を考えることにしました。
しかし、Application変数を使う手段はまったく思いつかなかったので、こんな方法もあるのだと大変参考になりました。
アドバイスありがとうございました。
No.3
- 回答日時:
こんにちは。
一概に出来る・出来ないは言えないと思うのですが、
DBかなにかに
アクセスフラグを作ってみてはいかがでしょうか?
アクセスフラグに 自分以外のユーザIDが入っていたら
page1.aspにはアクセス不可。
「×」ボタンでフォームが閉じられた時の処理は
拾えます。onUnloadイベントで
「×」「戻る」「別ページへリンク」は
チェックしてみました。
上手くかんがえてアクセスフラグを更新すればいいでしょう
ログイン情報をSessionに持たせれば
ページを放置されてもSessio_onEndを使えば回避できるでしょう。
ログイン情報が消えたらもう一度ログインさせ
ページへのアクセスフラグも更新できますね。
と言う風に やり方はいろいろあります が・・・
JavaScriptで管理するのは
お奨めできないです。
JavaScript拒否になっていたらそこでNGです。
#1さんはそういう意味で
無理と言ったのではないでしょうか?
ryo_fさんの作るページが
全国誰でも使えるようなページなら 無理でしょう
#2さんの言うとおり
イレギュラー処理が難しいでしょうね。
でも、
社内システムなら ある程度融通が利くので
出来るかもしれません。
たとえば、1ユーザで1画面のみ対応!とか
JavaScript対応ブラウザにのみ対応!とか・・・
ryo_fさんの作りたいシステムによりけりです
がんばってください。
限られたユーザしか使用しないシステムなので、やり方によっては実現できそうですが、今回はとりあえず見送ることにしました。
しかし、いろいろ手段はあるということがわかっただけでも勉強になりました。
アドバイスありがとうございました。
No.2
- 回答日時:
可能は可能です。
CGIと組み合わせ、page1.aspにログインされた直後に排他制御するだけですが、イレギュラー処理が大変でしょうね。page1.aspに設置してある「ログアウト」ボタンを押さないでブラウザを閉じたらどうするか?
page1.aspを開いたまま放置されたらどうするか?
page1.aspを「更新」ボタンでリロードされたらどうするか?
因みに、銀行のWEBページでのオンラインサービスで、同じ人が同時にログイン出来ないようにしているサイトがあり、上記の問題を「タイムアウトで自動ログアウト」と言う仕掛けで解決しています。
銀行がやってる「同じ人が同時にログイン出来ない」を「他の人も同時にログイン出来ない」に変えれば(つまり「ログイン中に同じ人がログインしようとした」の判定を「ログイン中に誰かがログインしようとした」に変えれば)目的を達成出来るので、#1さんの言う「無理です」は間違いです。
具体的な方法が判らないので回答にはなっていませんが、銀行のWEBサイトが同じような事を実現しているので可能な筈です。頑張って下さい。
検討した結果、別の手段を考えた方が安全そうなので、今回はこの処理は見送りました。
不可能ではなさそうなので、また必要に迫られたら考えてみようと思います。
アドバイスありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(インターネット接続・インフラ) 語学レッスン予約ページを作ろうとしています。 1 2022/09/26 17:43
- その他(ネットショッピング・通販・ECサイト) 伊藤純奈の写真集はもう販売終了しましたか? ファンクラブに入り購入ページにアクセスし パスワードを入 1 2022/05/15 13:55
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- その他(インターネット接続・インフラ) ブラウザにIPアドレス入力した時 1 2022/06/16 19:08
- その他(ブラウザ) このページは動作していません HTTP ERROR 401 2 2022/11/28 12:11
- Yahoo!メール YahooIDをパスワード形式にしただけなのに、利用規約違反とされて電話番号が使えなくなりました 1 2023/03/15 20:44
- Yahoo!メール YahooIDをパスワード形式にしただけなのに、利用規約違反とされて電話番号が使えなくなりました 3 2023/03/25 04:08
- PHP PHPのセッション有効期限について 5 2023/06/14 12:40
- ルーター・ネットワーク機器 NUROのルータF660Aについて 2 2022/09/07 11:44
- ポケモンGO ポケモンホームへアカウント連携をやろうとしてパスワード入力したんですけどWebページへのアクセス不可 1 2023/05/22 13:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ログインフラグがわかりません。
-
セキュリティに関して
-
VBAでHTTPログイン
-
DVD-Rの「セッションを閉じる」...
-
ポストバック(__doPostback)へ...
-
Accessの画面更新を一時的に停...
-
google マイマップのIDはどこ...
-
グーグルマップの文字化けで困...
-
戻ると、記入フォームの内容が...
-
asp.netにてgridviewの列を動的...
-
DataGridViewのチェックボック...
-
今更、VBAでRPA、キーボード操...
-
c# 文字列の最後から1文字削除...
-
コンピュータへの接続数が最大...
-
VBAで一時中断したプログラムの...
-
C# ボタンを押すとyahooのサイ...
-
javascript 別ウィンドウを開...
-
最新ページを表示する際のF5...
-
画面
-
画面遷移が不正ですと表示されます
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPからWindowsログインユーザ...
-
えきねっとのログイン画面はどこ?
-
VBAでHTTPログイン
-
Global.asaについて
-
PWを入れると別のページに飛ん...
-
セッション管理について(同時...
-
エディットボックスの非表示方法
-
phpmyadminでDBが作成できない。
-
XMLHTTPを用いて認証が必要なUR...
-
Enterキーでログイン
-
特定の端末からのみWebシステム...
-
ログインフラグがわかりません。
-
INPUTにnameがない場合のsubmit
-
セキュリティに関して
-
ASP.NET MVC 最初からあるログ...
-
windows統合認証とform認証の併用
-
勝手にログアウトされてしまい...
-
PHPで作成するログイン画面の作...
-
Windows認証でDBにアクセスでき...
-
戻るボタンで、ログイン中を維...
おすすめ情報