C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: クッキーレスセッションでログイン画面がタイムアウトする


(過去ログ 57 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■32431 / inTopicNo.1)  クッキーレスセッションでログイン画面がタイムアウトする
  
□投稿者/ Hirotow (205回)-(2009/02/06(Fri) 14:29:18)

分類:[ASP.NET (VB)] 

現在ASP.NET(VS2005/VB.NET)で携帯サイトを作成しています。
このサイトでは旧い端末にも対応するためクッキーレスセッション(URLリライト)を使用しています。
このため、ログイン画面のまま放置してセッションが切れると、POSTしても新しいセッションIDを含むURLにリダイレクトされ、何も起きていないように見えます。
仕様上この動作ではだめなので、対策を考えているのですが、有効な方法が思いつきません。
どなた方法やヒントをお知りの方がいましたらご教示をお願いします。
引用返信 編集キー/
■32435 / inTopicNo.2)  Re[1]: クッキーレスセッションでログイン画面がタイムアウトする
□投稿者/ biac (42回)-(2009/02/06(Fri) 14:57:22)
biac さんの Web サイト
No32431 (Hirotow さん) に返信
> このため、ログイン画面のまま放置してセッションが切れると、POSTしても新しいセッションIDを含むURLにリダイレクトされ、何も起きていないように見えます。

ログイン画面のまま放置 …それはログインしていない状態、ですよね?

・ログインしていない状態なのに、 セッションを維持しようとしているのですか? それはなぜですか?
あるいは、
・ログインしている状態なのに、 ログイン画面を出せるのですか? それはなぜですか?

引用返信 編集キー/
■32436 / inTopicNo.3)  Re[2]: クッキーレスセッションでログイン画面がタイムアウトする
□投稿者/ Hirotow (206回)-(2009/02/06(Fri) 15:01:30)
> ログイン画面のまま放置 …それはログインしていない状態、ですよね?
>
> ・ログインしていない状態なのに、 セッションを維持しようとしているのですか? それはなぜですか?
> あるいは、
> ・ログインしている状態なのに、 ログイン画面を出せるのですか? それはなぜですか?

私の知りうる範囲ではですが、
@PageディレクティブのEnableSessionStateでセッションをオフにすると、「ログインできた」という情報をセッションに書き込めません。
ログイン情報をセッションに書き込んでメニュー画面にリダイレクトしているのでセッションに書き込めなければ本末転倒です。
オンにすると、正常系では正しく動作しますが、タイムアウトが発生します。

書き忘れていましたが、プロジェクトの方針でASP.NET標準の認証機構は使用していません。
引用返信 編集キー/
■32460 / inTopicNo.4)  Re[3]: クッキーレスセッションでログイン画面がタイムアウトする
□投稿者/ biac (43回)-(2009/02/06(Fri) 16:44:23)
biac さんの Web サイト
No32436 (Hirotow さん) に返信
> @PageディレクティブのEnableSessionStateでセッションをオフにすると、「ログインできた」という情報をセッションに書き込めません。
> ログイン情報をセッションに書き込んでメニュー画面にリダイレクトしているのでセッションに書き込めなければ本末転倒です。
> オンにすると、正常系では正しく動作しますが、タイムアウトが発生します。

ん〜、 けっきょく、 ログインしていない状態なのに、 意味無くセッションを維持しようとしているように思えます。

ログインするために、クライアント側からユーザー名とパスワードなどをポストしてると思いますが、そのデータを受け取ってログインを許可するかどうかの判定基準にセッションが必要ですか?

…あ。 ひょっとして、 global.asax の Session_Start() あたりで、無条件にログイン画面へ飛ばしてたりします?


引用返信 編集キー/
■32463 / inTopicNo.5)  Re[4]: クッキーレスセッションでログイン画面がタイムアウトする
□投稿者/ Hirotow (207回)-(2009/02/06(Fri) 17:02:25)
2009/02/06(Fri) 17:02:48 編集(投稿者)

No32460 (biac さん) に返信

回答ありがとうございます。

> …あ。 ひょっとして、 global.asax の Session_Start() あたりで、無条件にログイン画面へ飛ばしてたりします?
Global.asaxは使っていません。
ログイン画面に飛ばす処理は各ページのPage_Loadでやっています。

> ログインするために、クライアント側からユーザー名とパスワードなどをポストしてると思いますが、そのデータを受け取ってログインを許可するかどうかの判定基準にセッションが必要ですか?
判断ではなく、ログイン状態を格納する処理のためにセッションが必要です。
また、クッキーレスだとセッション状態を有効にする際にリダイレクトが発生するため、QueryString以外の手段でを引き継げません。

ログイン処理内でセッションを作成して、作成したセッションIDでリダイレクトできればいいのですが。
引用返信 編集キー/
■32473 / inTopicNo.6)  Re[5]: クッキーレスセッションでログイン画面がタイムアウトする
□投稿者/ biac (44回)-(2009/02/06(Fri) 20:13:58)
biac さんの Web サイト
No32463 (Hirotow さん) に返信
> また、クッキーレスだとセッション状態を有効にする際にリダイレクトが発生するため、QueryString以外の手段でを引き継げません。

ごめんなさい、そこを勘違いしておりました。

クッキーレスのときは、最初のアクセスのときから、いきなり 302 (リダイレクト) を返されちゃうのでしたね。
最初は 200 (正常応答) で、 ポストバックしたときにセッション付きの url への 302 が返ると勘違いしてました。 説明にお手間を取らせてしまって、 すみませんでした。

で。 GET リクエストなら 302 でも失われないけど、 そこにユーザー ID やらパスワードやらが入っちゃうのは… ということですね?


> ログイン処理内でセッションを作成して、作成したセッションIDでリダイレクトできればいいのですが。

セッションレスクッキーの実装を知らないので、 なんとも言えないのですが…

もしも、 セッションレスクッキーの仕掛けが HTTP モジュールとして実装されていて、
※ 参考: http://msdn.microsoft.com/ja-jp/library/cc465561.aspx
その手前に、 自作の HTTP モジュールを挟みこむことができれば、 POST データとリダイレクト前後の url が取得できることになりますから、 何とかなるかも知れません。
引用返信 編集キー/
■32475 / inTopicNo.7)  Re[6]: クッキーレスセッションでログイン画面がタイムアウトする
□投稿者/ Hirotow (208回)-(2009/02/06(Fri) 20:39:15)
No32473 (biac さん) に返信
返信が遅くなってしまい申し訳ありません。

>もしも、 セッションレスクッキーの仕掛けが HTTP モジュールとして実装されていて、
>※ 参考: http://msdn.microsoft.com/ja-jp/library/cc465561.aspx
>その手前に、 自作の HTTP モジュールを挟みこむことができれば、 POST データとリダイレクト前後の url が取得できることになりますから、 何とかなるかも知れません。
素直な方法では難しそうなので、その線で行ってみます。

#ほかに知っている人がいるかもしれないので質問自体はそのまま置いときます。
引用返信 編集キー/
■32781 / inTopicNo.8)  Re[7]: クッキーレスセッションでログイン画面がタイムアウトする
□投稿者/ Hirotow (209回)-(2009/02/14(Sat) 18:07:47)
解決済みにしておきます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -