【问题标题】:Share Session between Page in Page to Page Request在页面到页面请求中的页面之间共享会话
【发布时间】:2010-08-23 21:03:06
【问题描述】:

我的申请很简单,我有 2 页:

  1. RSSProducer.aspx:生成 RSS (XML) 提要的页面
  2. RssConsumer.aspx:检索 RSS 提要并在转发器控件中将其显示给用户的页面。为此,我使用 System.Xml.XmlTextReader 根据从 RSSProducePage 检索到的 RSS-XML 来填充 DataSet。 DataSet 中的一个表绑定到转发器控件。

例如,这是我的 RssConsumer.aspx 页面中的内容:

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Session("permittedToViewSomeDetail") = True
    Dim url = "http://localhost/DevSite/RSSProducer.aspx"
    Dim reader As New System.Xml.XmlTextReader(url)
    Dim ds As New DataSet()
    ds.ReadXml(reader)
    myRssRepeater.DataSource = ds.Tables(2)
    myRssRepeater.DataBind()
  End Sub

我的问题是用户授权详细信息存储在 RssConsumer 页面中的 Session 中,需要在 RSSProducer 页面中访问(在此示例中,我需要在 RSSProducer 页面中访问 Session("permittedToViewSomeDetail") );但是,Session 标识符在两者之间并不通用。这意味着我无法访问 RSSProducer 页面中的授权详细信息。

原因我很清楚:

  1. 用户的浏览器发出请求 RssConsumer 页面
  2. 服务器会生成一个会话 ID(存储在 cookie 中),如果 没有现有的会话 标识符
  3. RSSConsumer 请求 RSSProducer 页面...生成一个 每次都有新的 Session ID 因为没有 会话标识符将永远 找到。

我尝试使用无 cookie 会话,以便我可以通过 URL 将 SessionID 传递到 RSSProducer 页面作为实验,但由于某种原因,XmlTextReader 不适用于此方法(但所需的共享会话确实有效)。

我在这里碰壁了。 有谁知道当一个页面向另一个页面发出请求时如何在页面之间共享会话?

谢谢,

-弗林尼

【问题讨论】:

  • rss 消费者页面如何请求 rss 生产者页面?通过浏览器上的重定向或通过一些内部代码生成 HTTPRequest 对象?
  • 从您的问题中不清楚这两个页面是在同一个站点上还是在不同的域/子域上。
  • 进一步了解您在做什么 - 为什么用户不能直接导航到 rssproducer.aspx,让浏览器格式化输出,或者使用样式表来格式化输出? rss 消费者在做什么才需要这样做?
  • 我更新了我的原始帖子以更好地解释我的问题。感谢您的帮助!
  • James,用户不能只导航到 RssProducer.aspx 页面的原因是必须先进行身份验证。用户需要登录,以便系统根据他们的授权/访问详细信息生成 RSS 提要。

标签: asp.net


【解决方案1】:

我最终采取了不同的方法来解决这个问题。我将代码从 RssProducer.aspx 页面移到了 RssConsumer.aspx 页面。我现在可以对该功能应用正确的授权,而且这种方式实际上更有效,因为我不再需要生成/使用 RSS-XML。

感谢所有花时间帮助我的人。

-弗林尼

【讨论】:

    猜你喜欢
    • 2013-12-10
    • 2012-01-22
    • 2011-01-15
    • 1970-01-01
    • 2021-09-04
    • 2014-03-27
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    相关资源
    最近更新 更多