1

シナリオ: 私の一般的なポータルは、ASP.NET とログイン ページを使用して IIS でホストされています。WCF サービス経由でのログインに成功すると、セッション トークンは のHTTPContext.Current.Session下に保存されmytokenます。

ポータル ページは、iframe で Silverlight アプリをホストします。SL アプリは、 を使用して新しいタブを開きますSystem.Windows.Browser.HtmlPage.Window.Navigate()

このタブは、ダウンロード用のファイルを提供することになっています。呼び出されるページは aspx ページです。HTTPContext.Current.Session["mytoken"]現在のセッション トークンを取得するためにアクセスします。

これは、1 人を除くすべての顧客で問題なく機能します。

問題: この 1 つの顧客では、ダウンロード タブがnullから取得されHTTPContext.Current.Sessions["mytoken"]ます。それを確認するためにトレースを追加しました。IE や Firefox では動作しません。

ダウンロード ページは、Web サーバーで直接呼び出すと正常に動作します。また、各顧客は非常によく似た設定を使用しており、1 つのサイトを除いてどこでも機能します。

誰が何を探すべきか知っていますか?1 つを除くすべてのサイトでセッションを共有するにはどうすればよいですか?

助けてくれてありがとう!

4

1 に答える 1

0

問題の原因がわかりました。これは、URL で IP アドレスやマシン名を使用することに関係していました。

http://machine1/portal/main.aspxポータルが を使用し、新しいタブが を使用している場合は機能しませんhttp://123.345.789.123/portal/download.aspx。またはその逆です。その場合、IPアドレスはマシン名に属するものですが、セッションは共有されていないようです。

SL アプリの構成で、ダウンロード リンクのベース URL をハードコードしました。そのため、独自のルート URL に基づいてダウンロード aspx の URL を動的に構築しませんでした。

現在、 とそのプロパティを使用してApplication.Current.Host.Source、Silverlight クライアントでオンザフライでベース URL を構築しています。SourceSchemePort

今ではすべてが魅力のように機能します。

于 2012-07-04T10:02:15.953 に答える