- - PR -
ASP.NETにおけるTimerイベントについて
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-09-09 14:08
>そうするとAが保持しているHASH値とDB上のHASH値が異なる為
>Aに対し何らかのエラー処理を行います。 >この為に、Aのセッションクッキーを定期的に取得し、その値 >をDB上の値と比較する処理を行いたいのです。 Webの仕組みとして、クライアントからのリクエストも無く、サーバー側からクライアントへクッキー情報を取りに行くことは出来ません。もし仮に出来たとしても、AもBもそして接続してきたクライアント全てを定期的にチェックしなければいけないことになってしまいますよね。 自分としてはBが同一IDでログオンした場合は、次回Aからのリクエストがあったタイミングでエラーとしてはじくような仕組みにしたほうがいいと思います。 | ||||
|
投稿日時: 2004-09-09 14:18
何となくやりたいことは分かるのですが、この場合Aさんのクッキーやセッション状態値を確認するには、Aさんが表示しているページが送信するなどしてくれなければ不可能だと思います。 Webアプリケーションではクライアントからのアクションがなければ、プログラム自体が動かないので何もできません。(ActiveXなどを使えば違うと思いますが、たぶん今回の件はそういうことではないと思いますので) Webアプリケーションでの2重ログイン防止はどこかで妥協が必要になると思いますので、「何のために2重ログインを防止するのか?」という点から再検討する必要があるかもしれません。 | ||||
|
投稿日時: 2004-09-09 15:21
皆様 ご返答ありがとうございます。
今回の仕様は実績のあるものが採用されたため、今からの変更は 無理な状況ですが、現在は全てjavascriptで行われているものを ASP.NETで作り変えようとしたのが、事の発端です。 仕様自体は、正規のユーザAが最初にログインした状態でユーザB がログインしてきた場合、アラートが上がりAがログイン画面に 差し戻されるという仕様です。 そこで、正規のユーザAはおかしいと思うので、コールセンターに 電話してPWを変更するという仕様になっています。 何らかの理由で漏えいしてしまった場合の対応としては悪くない 仕様と思っております。 色々自分の方でも色々試しましたが、ログイン後のページに、 <asp:TextBox id="ID_TextBox" Runat="server" Visible="False"></asp:TextBox> を埋め込んでおき、この情報をタイマーで回す関数の中で使用し、 DBの情報と比較することにしようと思いましたが、これをやった 場合TextBoxの情報は間違い無くユーザ毎の情報が入りますが、 タイマーの関数もマルチスレッドで動くはず・・・・・かな? これって問題ありますかね? | ||||
|
投稿日時: 2004-09-09 15:43
なるほど、基になる既存のWebアプリケーションがあるということですね。 そういうことでしたら、ASP.NETも所詮Webアプリケーションなので、残念ですがクライアント側のjavascriptでしかできないことはjavascriptで実装するしかありません。 こちらの記事が参考になるかもしれませんので、一度読んでみてください。 Visual Studio .NETは魔法の杖か? | ||||
|
投稿日時: 2004-09-09 18:00
Ten.様 ご返答ありがとうございます。
非常に勉強になりました。 クライアントサイドとサーバーサイドを一緒にして何度か痛い目に 遭った事があったにも関わらず、まだまだ未熟なようです。 一番強力なASP.NETのWebアプリケーションは、ユーザのPCに.NET FRAMEWORK がインストールしてある状況で、そのコンポーネントを利用する 方法だと思いますが、ユーザが許さないんですよねぇ・・・・ | ||||
|
投稿日時: 2004-09-09 22:52
試してないのでアレですが、フレームを分けて、大きさ0のフレームを作り、そのフレームにてポストバックをさせると、ユーザ入力の方はポストバックによる再描画の影響を受けないですむのでは?
で、ちょっと気になったのですが、
悪くないですか?ユーザAとユーザBの、どちらが不正ユーザですか?ユーザAが強制退去させられた後、ユーザBは操作を続けられるのでしょうか?ユーザAがいたことをユーザBには知らされないのでしょうか?ユーザAが不正ユーザだった場合、不正ユーザがパスワードを変えるよう連絡することはないのでしょうか?また、コールセンターは、どうやって・・・まぁ、それはいいか。 | ||||
|
投稿日時: 2004-09-09 23:56
ユーザーAが不正ユーザーだと変なことになりそうですね
| ||||
|
投稿日時: 2004-09-10 06:18
そういえばポストバックのさせ方も質問されていましたね。こんな感じかな? window.setTimeout('postbackForCheck()', ミリ秒); function postbackForCheck() { window.document.フォームID.submit(); } |