- - PR -
ASP.NET2.0で子画面を作ったのですが。
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-08-02 11:53
はじめまして。
ASP.NET2.0(VB.NET)を使っています。 フォーム認証を使っており、親子画面があります。 子画面を表示させた状態で放っておき、セッションのタイムアウトが起きたあとで、子画面を操作させようとすると、ログイン画面にリダイレクトされます。 そうすると、親画面が二つのような状態になってしまいます。 できれば、タイムアウトが起きたあとに子画面を操作しようとした場合には、ログイン画面に行かずに、エラー用のページを表示させるとか、画面が閉じるようにさせるとかして、親画面を二つ表示させないようにしたいのですが、どうしたらできるのでしょうか。 よろしくお願いします。 | ||||
|
投稿日時: 2006-08-02 21:59
認証画面で、referer や遷移先のページ(リクエスト クエリ)を見て、「親画面」でなければ transfer するなり etc...
で、いけると思います。 「親画面」は、変わらないのですよね? | ||||
|
投稿日時: 2006-08-02 23:26
セッション開始イベントがログイン画面以外で起きたらエラー画面に遷移する、という方法でも出来そうです。
| ||||
|
投稿日時: 2006-08-03 02:35
子画面を、ログイン画面にリダイレクトさるのから除外しておいて
独自に認証チェックして処理するのもアリかと思いますね。 (ある画面が子画面にも親画面にもなりうる場合は難しいですが。) | ||||
|
投稿日時: 2006-08-03 10:37
ログイン画面のクライアントスクリプトで
[ メッセージ編集済み 編集者: todo 編集日時 2006-08-03 11:20 ] | ||||
|
投稿日時: 2006-08-03 12:47
ログイン画面に[ReturnUrl]というQueryStringがわたってくるのでそれを使ってもいいし。
todoさんの方法だと、子画面にも親画面にもなりうるページにも対応できそうですね。 | ||||
|
投稿日時: 2006-08-04 10:19
おはようございます。
たくさんのアドバイスありがとうございます。 ログイン画面で、どの画面への遷移を要求されているのかを判定し、子画面だった場合には、エラー画面を表示させようと思います。 この方法は、他のことにも使えそうですね。 ・・・テストをするためにセッションタイムアウトの時間を1分に設定したところ、タイムアウト後に画面のボタンを押したりすると、ログイン画面には行かずに、そのページで使われているRequest.〜などのコードのところで、エラーになってしまいました。 (20分等に設定してある時は、エラーも出ず、ログイン画面に遷移します。) テスト時だけのタイムアウト設定ですが、極端に短い時間に設定したりするのも、いけないのでしょうか。 | ||||
|
投稿日時: 2006-08-04 21:31
1分がダメ、ということはないと思います。 Form認証のtimeoutとセッションのtimeoutは別々に設定できた気がするのでそのせいかも。 (セッションが切れた時点でForm認証も切れた気がするんですけどね。。) |