@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

クッキーレスセッションと、SSL

1
投稿者投稿内容
黒木
会議室デビュー日: 2009/04/02
投稿数: 2
投稿日時: 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 ]
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2009-04-06 11:44
セッションだけなら書かれているとおり、自分でSessionIDを取り出してURLの中に埋め込めばいいですね。
Form認証のほうは認証チケットとしてクッキーを利用してますので、クッキーレスの環境じゃそもそも使えないと思います。
黒木
会議室デビュー日: 2009/04/02
投稿数: 2
投稿日時: 2009-04-07 10:32
どっとねっとふぁん様
ありがとうございました。

その後、自分でもいろいろ調べたところ、以下のようなことがわかりました。

●クッキーレスセッションを使用した際に、URLに埋め込まれる文字列を、任意のURLに埋め込むには、"ApplyAppPathModifier"を利用するとよい。
例)Response.ApplyAppPathModifire(virtualpath)

●Form認証も、クッキーレスで行うには、
<forms>タグのオプションに、「 cookieless="UseUri"」を付け加える。


ASP.NETで、携帯サイトの開発をされている方が少ないのか、上記の情報を探すのに結構苦労しました。
ヘルプにはきちんと書かれていたのですが、そこにたどりつけなかった…

お世話になりました。




どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2009-04-07 11:10
あ、こんなメソッドや設定あったんですね。
知りませんでした。

#特にformsのUseUri
 2.0で拡張されてたのか。

ApplyAppPathModifierを使ったときってForm認証のほうも含めたURLを生成してくれるんでしょうか。
であれば便利に使えるけどな。

このあたり、使ってみてわかったことを教えていただけるとありがたいです。
1

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