在页面页面到页面请求之间共享会话

时间:2010-08-19 20:26:00

标签: asp.net

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

  1. RSSProducer.aspx:生成RSS(XML)供稿的页面
  2. RssConsumer.aspx:检索RSS源并在转发器控件中将其显示给用户的页面。为此,我使用System.Xml.XmlTextReader使用基于从RSSProducePage检索的RSS-XML的表填充DataSet。 DataSet中的表绑定到转发器控件。
  3. 例如,这就是我在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(“allowedToViewSomeDetail”)) );但是,会话标识符在两者之间并不常见。这意味着我无法访问RSSProducer页面中的授权详细信息。

    为什么我的原因相当清楚:

    1. 用户的浏览器发出请求 RssConsumer页面
    2. 服务器生成会话ID(存储在cookie中) 没有现有的会话 IDENTIFER
    3. RSSConsumer请求RSSProducer页面...生成一个 因为没有新的会话ID 会话标识符永远都会发生 被发现。
    4. 我尝试使用无Cookie会话,以便我可以通过URL将SessionID作为实验传递给RSSProducer页面但由于某种原因,XmlTextReader不能很好地使用此方法(但所需的共享会话确实有效)。 / p>

      我在这里碰了一堵砖墙。 当一个页面向另一个页面发出请求时,是否有人知道如何在页面之间共享会话?

      谢谢,

      -Frinny

1 个答案:

答案 0 :(得分:0)

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

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

-Frinny