• 締切済み

ASP.netにて携帯サイトを作ります。しかしクッキーレスセッションを

ASP.netにて携帯サイトを作ります。しかしクッキーレスセッションを使うとURLの途中に自動でセッションIDが含まれるためにSEO的にもサーバーログてきにも良くないので、セッションIDをクエリストリングで渡して、必要なページでセッションIDからSessionに入れた情報を読もうと考えています。 セッションIDはSession.sessionIDで取得できるのですが、このIDをキーにてSessionに入れた情報を引き出すにはどのような処理が必要なのでしょうか? 宜しくお願い致します。

みんなの回答

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.2

補足に対してです。 次のようなサンプルコードで試してみたました。 if (this.IsPostBack) { Label3.Text = Session[this.Hidden1.Value.ToString()].ToString(); } else { Session[Session.SessionID] = "ロードされました。"; this.Hidden1.Value = Session.SessionID; } どうでしょうか。

すると、全ての回答が全文表示されます。
  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

例えば、 Session[Session.SessionID.ToString()] = "あるデータ"; と入れておけば、取り出す側では、 data = (string)Session[Session.SessionID.ToString()]; という感じで出来ると思うのですが、もしかしたら、セッションにクラスなどの複数のデータを持てるものを入れた時という意味でしょうか? もしそうであれば、 class Class1{ ... } Class1 data = new Class1(); data.someField = "aaa"; data.someProperty = 123; ... Session[Session.SessionID.ToString()] = data; としておき Class1 ret = Session[Session.SessionID.ToString()] as Class1; という感じではないでしょうか。

gogojets
質問者

補足

ご返事が遅れましてすみません。 >data = (string)Session[Session.SessionID.ToString()]; ↑SessionIDを引数としてセッションから情報を抜くことは可能なんですね。 やりたい事を具体的に申しますとhiddenでセッションIDを渡して、そのセッションIDを使って各ページで保存した値を取得したいのです。 たとえば、 <値を挿入するページ> string sec = Session.SessionID;//セッションIDの取得 Session[Session.SessionID.ToString()] = "あるデータ"; にて「sec」にSessionIDを保存し、「あるデータを」他のページで「sec」をキーとしてセッションから抜きます。 <別ページで値を取得> string data = (string)Session[Session.SessionID.ToString()]; このとき、当然 Session[Session.sec.ToString()] = "あるデータ"; string data = (string)Session[Session.sec.ToString()]; といった事ができません。どうすればsecをキーにセッションに保存した値が抜けますでしょうか?宜しくお願い致します。

すると、全ての回答が全文表示されます。

関連するQ&A