- 締切済み
Global.asaについて
すみません。お世話になります。 クラシックなほうのASPで、webを作りました。 のですが、ログイン管理を軽視してしたため、あとからつけたすことになりました。 で、誰がいつログインして、いつ抜けているのかの記録を取りたいのですが、調べたとことろ、Global.asaというものでできる様子。 Sub Session_OnStart で、 sCoString = "DBQ=" & Server.MapPath("XXX.mdb") & ";"・・・などのDBへの接続先を記述し、rs.AddNew とかで記録!というわけにはいかないのでしょうか? どうしたらこういったことが実現できるのか、教えていただけますでしょうか。もし参考になるサイトなどあれば、ご教授いただけると助かります。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- magtons
- ベストアンサー率33% (1/3)
昔ASPをやっていたころは、global.asaはどうにも 信用できず、私は使用していませんでした。 ログインのログはログイン処理のところでログを書き出せばいいと 思います。ログアウトはWebアプリでは考えても無駄な気がしたので、 記録していませんでした。せいぜい、ログアウトボタンをつけて、 そのクリックの処理としてつければいいかな(ログアウト記録が ない場合もあるけど、まぁいいや)くらいに思っていました。 また、アプリケーションの実装にもよりますが、 Sessionの有無 == ログイン状態とも限らないので、OnStartで ログインしたと記録するのはまずい場合もある気もします。
- temtecomai2
- ベストアンサー率61% (656/1071)
ASP は 10年以上前にやったきりなので自信がない。 Global.asa 内でできることって制限が多かった気がする。 だから Session_OnStart ではセッションを開始した旨を記録するフラグ的なセッション変数を宣言。 Session("AlreadyRecorded") = 0 とか。 んでトップページ内で Session("AlreadyRecorded") が 0 なら DB に記録し、Session("AlreadyRecorded") を 1 にする。 とか。 んで終了時の記録は希望通りに行かないと思います。 ページ上に作った [終了] とかのリンクなりボタンをユーザーが明示的にクリックでもしないかぎり、ユーザーがユーザーの意思で使用を終えたタイミングをつかむことはできないでしょう。 ユーザーがページを開いたまま放っておいてもタイムアウトでセッションが切れますんで Session_OnEnd が実行されちゃいますし。 あんまりやりませんて。
お礼
お返事遅くなってすみません。 うむむー。 なるほどですねー。 もう少し考えてみる必要がありそうですね。 また機会がありましたらよろしくお願いします。
補足
>また、アプリケーションの実装にもよりますが、 >Sessionの有無 == ログイン状態とも限らないので、OnStartで >ログインしたと記録するのはまずい場合もある気もします。 お返事遅くなってすみません。 なるほどーそうですかー。 ログインのログは簡単に取れるんですけどねー ありがとうございます。 また機会がありましたらお願いします。