- - PR -
クッキーレスセッションと、SSL
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-04-02 08:45
初めて質問させていただきます
現在、ASP.NETにて携帯サイトを構築中で、セッション管理として、クッキーレスを使用してます。 このサイトで、一部分のページに対してSSLを使用する必要があります。 その際リンクURLの記述として、"https://〜" すると、クッキーレスセッションの情報として、URL中に埋め込まれたセッションIDが受け継がれません。 セッションIDのみであれば、"session.SessionID"で取得して埋め込めるかと思ったのですが、同時にForm認証も使用していて、認証情報の識別子はコード中から取得することができないようで、コードにおいてURL中に埋め込むこともできません。 サーバーコントロールについては、同じ"http"での通信であれば、相対パスで記述することにより、自動的にセッションIDや、認証情報識別子などが付与されることはわかっています。 クッキーレスセッション+Form認証+SSL で構築する際、リンクの記述の仕方などどのようにするのが良いのでしょうか? お知恵をお借りできればと思います。 よろしくお願いいたします。 ---追記 HyperLinkサーバーコントロールの、"NavigateUrl"プロパティについて、"index.aspx"としてすると、ブラウザ上からは、"http://localhost/(S(kbj5lr45tjp5kqeuwrzizvfs))/index.aspx" の形でリンクするように記述が追加されます。 が、同じコントロールの"NavigateUrl"にたいして、"https://localhost/index.aspx"と記述すると、どこにもセッションIDが含まれず、リンク先に遷移した際には新しいセッションIDが生成されてしまいます。 http ⇒ https、もしくは、https ⇒ http で、セッションIDを引き継ぐ方法ってあるのでしょうか? [ メッセージ編集済み 編集者: 黒木 編集日時 2009-04-02 10:36 ] |
|
投稿日時: 2009-04-06 11:44
セッションだけなら書かれているとおり、自分でSessionIDを取り出してURLの中に埋め込めばいいですね。
Form認証のほうは認証チケットとしてクッキーを利用してますので、クッキーレスの環境じゃそもそも使えないと思います。 |
|
投稿日時: 2009-04-07 10:32
どっとねっとふぁん様
ありがとうございました。 その後、自分でもいろいろ調べたところ、以下のようなことがわかりました。 ●クッキーレスセッションを使用した際に、URLに埋め込まれる文字列を、任意のURLに埋め込むには、"ApplyAppPathModifier"を利用するとよい。 例)Response.ApplyAppPathModifire(virtualpath) ●Form認証も、クッキーレスで行うには、 <forms>タグのオプションに、「 cookieless="UseUri"」を付け加える。 ASP.NETで、携帯サイトの開発をされている方が少ないのか、上記の情報を探すのに結構苦労しました。 ヘルプにはきちんと書かれていたのですが、そこにたどりつけなかった… お世話になりました。 |
|
投稿日時: 2009-04-07 11:10
あ、こんなメソッドや設定あったんですね。
知りませんでした。 #特にformsのUseUri 2.0で拡張されてたのか。 ApplyAppPathModifierを使ったときってForm認証のほうも含めたURLを生成してくれるんでしょうか。 であれば便利に使えるけどな。 このあたり、使ってみてわかったことを教えていただけるとありがたいです。 |
1