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

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

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

Re[2]: global.asax


(過去ログ 14 を表示中)

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

■4336 / inTopicNo.1)  global.asax
  
□投稿者/ water (1回)-(2007/06/14(Thu) 11:29:34)

分類:[VB.NET (ASP.NET)] 

2007/06/14(Thu) 11:36:43 編集(投稿者)

[環境]
 Visual Studio.NET 2003
 Windows Server 2003
 IIS Ver 5.1

[質問内容]
 スタートページ(WebForm1.aspx)で、ログイン情報を入力し、ボタン(ログインボタン)を押下した際に
 次のページ(WebForm2.aspx)に画面遷移させています。

 その際、ログイン情報をSessionにて保持しています。

 Sessionがタイムアウトになった場合、
 Global.asax内の、Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)が呼ばれ、
 スタートページ(WebForm1.aspx)にページを遷移させたいのですが、

 Response.Redirect("WebForm1.aspx")
 と記述すると、

 "このコンテキストでは応答が有効ではありません。"
 というエラーのため、画面遷移が行われません。

 何かお分かりになられましたら、ご教授お願いいたします。

 
引用返信 編集キー/
■4340 / inTopicNo.2)  Re[1]: global.asax
□投稿者/ 囚人 (105回)-(2007/06/14(Thu) 14:00:04)
確認していませんが、Session_End は通常のリクエスト→レスポンスというパイプラインに組み込まれていないから、リダイレクトなんてできないのでしょう。リクエストしてきているのにセッションがエンドになるわけないですし。

なので、この場合はセッションの終わりという判断をするのではなく、リクエストの最初で確認すべきです。
でも、フォーム認証を使うのが一番手っ取り早いと思います。

ちなみに、Session_End が発生するのはセッションモードが InProc の場合だけなので、使用する場合は要注意を。

#Windows Server 2003 の IIS って 5.1 でしたっけ?
引用返信 編集キー/
■4341 / inTopicNo.3)  Re[2]: global.asax
□投稿者/ water (2回)-(2007/06/14(Thu) 14:22:15)
2007/06/14(Thu) 14:23:22 編集(投稿者)

No4340 (囚人 さん) に返信

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

> 確認していませんが、Session_End は通常のリクエスト→レスポンスというパイプラインに組み込まれていないから、リダイレクトなんてできないのでしょう。リクエストしてきているのにセッションがエンドになるわけないですし。
>
> なので、この場合はセッションの終わりという判断をするのではなく、リクエストの最初で確認すべきです。
> でも、フォーム認証を使うのが一番手っ取り早いと思います。
>
> ちなみに、Session_End が発生するのはセッションモードが InProc の場合だけなので、使用する場合は要注意を。
>
> #Windows Server 2003 の IIS って 5.1 でしたっけ?

リクエストの最初で確認
といいますと、Page_Load時にSessionの値を確認して
値がなければページ遷移、あれば処理続行
というような感じでしょうか?

フォーム認証?
少し調べてみます。

IISのVerは6.0でした。。。

よろしくお願いいたします。


引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -