- PR -

ブラウザの×ボタンで終了時・・

投稿者投稿内容
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2005-02-21 11:50
セッション切れには対応していませんが、
ログインアウト関連のDBにログインフラグを持たせる方法ならやったことありますけど。

参考までに。
1.ログインボタン押下→フラグON&ログイン時刻登録→ログアウトボタン押下→フラグOFF&ログアウト時刻登録
2.ログインボタン押下→フラグON&ログイン時刻登録→×ボタン押下→再度ログインボタン押下→フラグがONになってたら強制ログアウトモード→ログアウト時刻登録

ログイン時ににフラグをチェックして、ONのままなら正常にログアウトしてなかったか、
誰かが不正にログインしているから一度強制ログアウトさせてその時刻を登録するということです。
ついでに、ログインしたクライアントのIPも登録しておくと良いかも。

#あら、解決してた。

_________________
OFF企画に関するご意見募集中■

[ メッセージ編集済み 編集者: まゆりん 編集日時 2005-02-21 11:50 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-02-21 20:17
引用:

Z80さんの書き込み (2005-02-21 11:47) より:

>Session_OnEndで行ないましょう。
失礼いたしました。解決しました。
どうもありがとうざいました。


 Session_Endは、セッション管理をインプロセスモードにしたときのみ発生します。
 中センセも書かれているとおり、このイベントは“セッションが終了したときのみ”発生するわけではありません。『処理途中のアプリケーションの再起動でも発生します』し、この再起動は、ASP.NETプロセスが一定以上(規定では60%)のメモリを確保すると発生します。
 これらのことから、インプロセスモードで使用することは、あまりお勧めしません。つまり、Session.Endイベントを使うこともあまりお勧めしません。

 それと、セッション管理と認証管理は別だと思うのですけど。。。まぁ、普通はセッションが切れたら認証もオフにするだろうし、認証をオフにするときにはセッションもクリアするでしょうから、一緒と考えても差し支えないのかもしれませんけど。セッションは切れたけれど、ログオフはしていない、ということも出来るんですよ。

_________________
猫山みやお
大ベテラン
会議室デビュー日: 2004/09/09
投稿数: 119
投稿日時: 2005-02-21 22:18
IE限定で、こんなのあります
コード:

<BODY onbeforeunload="return unload_test();">



<script language="javascript">
<!--
function unload_test() {
if (event.clientY < 0) {
alert("Don't close me!");
}
}
//-->
</script>




[ メッセージ編集済み 編集者: 猫山みやお 編集日時 2005-02-21 22:21 ]

スキルアップ/キャリアアップ(JOB@IT)