2012-01-18 5 views
4

C#では、どのサブドメインから別のサブドメインにセッションを渡すことができますか?例えば Iは、IISのローカルホストを使用していると私はセッションを別のサブドメインに渡す

In site1 

Session["test"] = "My value"; 

In site2 

Response.Write(Convert.ToString(Session["test"])); 

上記方法は、あるページから別のページに値を渡すためにうまく働いた以下の方法を用いてhttp:\\localhost\site2

http:\\localhost\site1から値を送信しようとしましたあるサブドメインから別のサブドメイン、つまりあるIIS Webアプリケーションから別のIIS Webアプリケーションに渡す値が必要です。

答えて

1

デフォルトのセッション状態プロバイダでは、これを行うことはできません。 here

また、プロバイダモデルを使用してthis

EDIT HACKような何かを行うことができませんでした:私はあなたがそれを行うことができますねあなたはプロバイダモデル(SessionStateStoreProvider)参照を使用して独自のロールバックする必要があります。 here

0

セッションID(および関連する設定)を共通のデータベースで交換することで、同様のことをやっています。

I.e.

  1. サイト1は、一緒にあなたの上記の例でtestよう、必要なすべての関連する設定を使用して、データベーステーブルにそのセッションIDを書き込みます。
  2. サイト1はサイト2のURLを呼び出し、サイト1のセッションIDをクエリ文字列パラメータとして渡します。
  3. サイト2は、クエリ文字列パラメータとして渡されるセッションIDを取得します。
  4. サイト2はtest(あなたの例では、「マイ値」)の値を取得するためにデータベーステーブルの検索キーとして渡されたセッションIDを使用しています

セキュリティを強化するために、私はまたにタイムスタンプを書きます表2には、セッションID のタイムスタンプ(ある程度の許容値を含む)が一致する行のみが読み込まれます。また、サイト2は、レコードを読み込んだ後でレコードを削除します。

もちろん、これはまっすぐではなく、達成したいと思っているものの100%ではないかもしれません。

0

セッションはアプリケーション固有のものです。 site1からsite2に(JQuery経由で)投稿できますか?この投稿はあなたにデータ(隠された)を送ることを可能にするでしょう。その後、サイトの新しいセッション変数にあなたの投稿のクエリー文字列を割り当てます。

関連する問題