【问题标题】:ASP.NET Silverlight New Tab Session empty (keys missing)ASP.NET Silverlight 新选项卡会话为空(缺少键)
【发布时间】:2012-07-03 12:45:40
【问题描述】:

场景:我的通用门户使用 ASP.NET 和登录页面托管在 IIS 中。通过WCF服务登录成功后,会话令牌保存在mytoken下的HTTPContext.Current.Session中。

门户页面在 iframe 中托管 Silverlight 应用程序。 SL 应用程序使用System.Windows.Browser.HtmlPage.Window.Navigate() 打开一个新选项卡。

该选项卡应该提供一个文件供下载。调用的页面是一个aspx 页面。它访问HTTPContext.Current.Session["mytoken"] 以获取当前会话令牌。

这对我的所有客户都有效,除了一个。

问题:对于这个客户,下载选项卡从HTTPContext.Current.Sessions["mytoken"] 获取null。我添加了一条痕迹来确认这一点。它不适用于 IE 或 Firefox。

直接在网络服务器上调用时,下载页面可以正常工作。每个客户都有一个非常相似的设置,它可以在任何地方工作,但在一个站点。

有人知道要找什么吗?如何在除一个站点之外的所有站点共享会话?

感谢您的帮助!

【问题讨论】:

标签: asp.net silverlight session tabs


【解决方案1】:

我们找到了问题的原因。它与在 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 及其属性SourceSchemePort 在 Silverlight 客户端中动态构建基本 URL。

现在一切都像魅力一样。

【讨论】:

    猜你喜欢
    • 2010-09-18
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多