- PR -

ASP.NET2.0 環境移行

投稿者投稿内容
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-01-10 13:12
> 次ページへの遷移時にはSession情報が維持されるがその後の遷移では
> SessionIdが変わってしまい情報の維持が出来なくなってしまいました。

Sessionもログインも基本はブラウザのクッキーに情報を持たせることで
なりたっています。
ブラウザがクッキーを利用しない設定になってたりすることはありませんか?

momosute
会議室デビュー日: 2003/07/19
投稿数: 17
投稿日時: 2007-01-10 15:22
>Sessionもログインも基本はブラウザのクッキーに情報を持たせることで
>なりたっています。
>ブラウザがクッキーを利用しない設定になってたりすることはありませんか?

クッキーの設定は許可になっています。
何台かの端末で実行してみましたが結果は同じでした。
また、セッションの状態をUseCookiesからUseUriにすると
1画面のみ遷移できそれ以降でSessionIdが変わってしまいます。
(Login画面からログイン後のTOP画面には遷移出来るがそれ以降の遷移が×)
※念のため各画面でSession情報をClearにしてないか確認しましたが
そのような記述はありませんでした。[Session.Clear()の記述無し]
※他の端末からブラウザ表示した際も同様の動作になりました。

現在、記述が悪いのかと思い、簡単なページを作成し、
Session情報の状態を確認中です。

Sessionは Clear Or Remove 以外でなにかSession情報が消えてしまう記述とか
気をつけなければいけない作法のようなものはあるのでしょうか?
momosute
会議室デビュー日: 2003/07/19
投稿数: 17
投稿日時: 2007-01-10 18:11
お世話になります。

その後の検証でひとつ原因らしきものがわかりました。

今回全てのページが一つのマスターページを使用しています。
マスターページの構成は上部にクライアントのロゴやサイトマップを、
左にサイトのツリービューを配置しているのですが、

マスターページを採用した各ページから、
ツリーにあるサイト名をクリックして画面を遷移しようとすると
セッションが新しいものに変わってしまうようです。

固定で配置した通常のボタンやリンクボタンなどでは
上記の現象は発生せず通常に画面遷移ができました。

ツリービューに関連して何か設定を変更しないと
セッション情報が失われる等の現象が発生するのでしょうか?

※ツリービューにはサイトマップデータソースを、
 サイトマップデータソースにはサイトマッププロバイダーに
 割り当てたいプロバイダーの名称を設定しています。
 (サイトマップを動的に入れ替える為このような方法を取っています。)
※サイトマッププロバイダーの名称は固定にしたり動的に変更したり
 幾つかのパターンを試してみましたが全てダメでした。


どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-01-10 18:48
> マスターページを採用した各ページから、
> ツリーにあるサイト名をクリックして画面を遷移しようとすると
> セッションが新しいものに変わってしまうようです。

「サイト名」なんですか?「各ページ名」ではなく?
ここだけを読むと、別のWebアプリケーション(サイト)に遷移しているように
思えてしまいます。
この場合、アプリケーションとして別のものなので、セッションは引き継がれない
のが正しい動作です。


momosute
会議室デビュー日: 2003/07/19
投稿数: 17
投稿日時: 2007-01-10 20:06
お世話になります。

サイト名ではなくページ名です。
表現が紛らわしくてすいませんでした。

ツリービューが動かない原因がわかったのですが、
現在、セッション状態をUseUriを使用しています。

その為動的にサイトマッププロバイダーを割り当ててたのですが、
サイトマップにはURLに含まれるセッション情報が入ってないので
新規のセッションの扱いになってしまったようです。

正解
http://○○○○○/(セッションID)/ページ名

現在(サイトマップを動的に割り当てた結果)
http://○○○○○/ページ名

クッキーが正常に動作していれば問題ない話ですね。。


ちなみにクッキーの設定に関してですがですが
サーバーでUseCookieとして、ブラウザではクッキーを有効にした場合も試しています。
(InternetExplorerのインターネットオプションとかの話ですよね?)
その際は自分の端末もしくはサーバー上でローカルでの確認だけではダメだと思い、
その他の端末からもWEBサーバーに接続して確認しましたが結果は一緒でした。


サーバーのweb.configの設定方法ですが、
・IISサービスマネージャの該当サイトを右クリックしプロパティを表示。
・プロパティ画面の「ASP.NET」タブを選択し「構成の表示」ボタンをクリックし
 「ASP.NET構成の設定」画面を表示。
・「ASP.NET構成の設定」画面の「状態の管理」タブを選択
・「Cookieなしのモード」を「UseCookies」を選択
これであっていますか?
サーバー側ではこれくらいしか設定箇所は無いとの認識なのですが
他にも設定or確認箇所があればご指摘お願いします。

※上記サーバーの設定で、どの端末でインターネットオプションで
 クッキーの設定を変えてもうまく行きません・・・
 (クッキーの設定の中には全部許可というのも試しましたがダメでした)
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2007-01-10 22:03
念のため確認ですが、ホスト名などに_(アンダースコア)が
含まれてたりしないですか?
momosute
会議室デビュー日: 2003/07/19
投稿数: 17
投稿日時: 2007-01-10 23:37
なちゃさん。

ホスト名は機器を準備していただいた部署が設定したものですが
ホスト名(サーバー名)にはアンダースコア入っています。
ネットで調べてみたら色々出てきました。
影響あるかもしれませんね。。。。

明日一番で機器を設定した部署に依頼して
ホスト名変更して再度試してみます。

momosute
会議室デビュー日: 2003/07/19
投稿数: 17
投稿日時: 2007-01-11 09:46
状況報告です。

本日、ハード担当の方にコンピュータ名から
アンダースコアを削除してもらい動作確認しました。
まだ簡単な確認程度ですが
ロール権限の動作やツリービューの動作など、
正常に動作しているようです。

今回はインターネット?の基本的な知識が
自分自身に無かった事が原因でした。
私はクライアントサーバーの開発ばかりだったのですが
そんな人間がすぐに取り掛かれるものではないですね。
お騒がせてして申し訳ありません。。。

どっとねっとふぁんさん、なちゃさん、
丁寧な返信ありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)