2011-04-15 6 views
2

ウェブアプリケーションでセッションオブジェクトを使用していますが、これはASP.NETセッションクッキーによって内部的にトレースされています。セッションオブジェクトにアクセスするには、そのCookieへのアクセスが不可欠です。私はhttp://http://wwwまたは任意のサブドメイン(ドメインは開発時に私には不明です)の下で自分のasp.netアプリケーションの作業が欲しいです。ASP.NETでセッションクッキーのドメインを動的に設定する

+0

サブドメインでクッキーを共有する方法を意味しますか?「www」の有無にかかわらず使用される場合 – sajoshi

答えて

0

できません。セッションクッキーは、1つのドメインと1つのドメインのみで動作します。

ただし、独自のセッション管理システムを作成して、そのように共有セッションを達成できます。私はまだブラウザが最初にそれを送信しないので、あなたがクッキーを再使用できるとは思わない。


もう少し考えてみると、私には分かりません。 :)おそらく、両方のサブドメインが同じASP.NETアプリケーションにマップされていれば、共有セッションを稼働させることができます。あなたがしなければならないだろうすべては、次のようなあなたのクッキーを設定されている:

<httpCookies domain=".maindomain.com"> 

異なるsubdomiansが同じアプリにマップされない場合は、私はあなたは間違いなくあなた自身のセッション管理を書く必要があるだろうと思います。


明らかに、この時点で私は塩の粒と書いてきたすべてのものを取る必要があります。私はいくつかのアイデアを得るためだけにあなたのために私の答えを残しているので、人々はそれの正しさについてコメントすることができます。

+0

可能です。アプリケーションのライフサイクルでドメインが変更されることはありません。それはいつか知られています。 'Request.Url'を使って現在のドメインを取得し、実行時に' ASP.NET_SessionId'を設定することはできますが、それはちょっと難しいですし、どうやって行うのか分かりません。 – Xaqron

+0

今私達はもっと近づいています。実際に私はあなたの提案(webconfigのusnig 'httpCookies')と同じことをしますが、セッションが操作されるaspxページの背後に置くコードを探しています。次に、web.configのハードコードされたキーを削除して、アプリケーションをどのドメインでも動作させることができます。私が必要とするのは、このキーがコードで行うことを実行することです(実行時に私はドメインを知っています)。 – Xaqron

-1

ドメインフィールドを空白にしないでください。そうすれば、あなたは特定のドメインにあなたのクッキーを束縛せず、あなたのサイトのドメインがどんなものであってもうまくプレイすることができます。

+0

いいえ、空白のままにしておくと、要求が出てきたドメインが*正確に*使用されます。だから、あなたがwww.site.comにいる場合、クッキーはwww.site.comに設定され、* .site.comでは利用できません。 – Jasmine

関連する問題