2010-08-19 8 views
0

Ma demande est simple, j'ai 2 pages:Partager session entre la page dans la page à la page Demande

  1. RSSProducer.aspx: Une page qui génère RSS (XML) alimente
  2. RssConsumer.aspx: Une page qui récupère les flux RSS et les affiche à l'utilisateur dans un contrôle de répéteur. Pour ce faire, j'utilise System.Xml.XmlTextReader pour remplir un DataSet avec des tables basées sur le RSS-XML extrait de RSSProducePage. Une table dans le DataSet est liée au contrôle du répéteur.

Par exemple, voici ce que j'ai dans ma page 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 

Mon problème est que les détails autorisation de l'utilisateur sont stockées en session dans la page RssConsumer qui doivent être accessibles en la page RSSProducer (dans cet exemple ce serait Session ("allowedToViewSomeDetail") que j'ai besoin d'accéder dans la page RSSProducer); Cependant, l'identificateur de session n'est pas commun entre les deux. Cela signifie que je ne peux pas accéder aux détails d'autorisation dans la page RSSProducer.

La raison pourquoi est assez clair pour moi: le navigateur de

  1. utilisateur fait une demande de la page RssConsumer
  2. Server génère un identifiant de session (qui est stockée dans un cookie) si il y a aucune session existante identifer
  3. la RSSConsumer demande la page RSSProducer ... qui génère un nouvel ID de session à chaque fois, car aucun identifiant de session va jamais être trouvé.

J'ai essayé d'utiliser la session cookieless pour que je puisse passer le SessionID via l'URL de la page RSSProducer comme une expérience, mais pour une raison quelconque XmlTextReader ne fonctionne pas bien avec cette méthode (mais la session commune souhaitée fonctionne).

J'ai touché un mur de briques ici. Est-ce que quelqu'un sait comment partager la session entre les pages lorsqu'une page fait une demande à l'autre?

Merci,

-Frinny

+0

comment la page des consommateurs rss demande la page producteur rss? via une redirection sur le navigateur ou via un code interne générant un objet HTTPRequest? –

+0

Il n'est pas clair à partir de votre question si les deux pages sont sur le même site ou sur différents domaines/sous-domaines. – Oded

+0

pour mieux comprendre ce que vous faites - pourquoi l'utilisateur ne peut-il simplement accéder directement à rssproducer.aspx et demander au formatage du navigateur de produire la sortie, ou utiliser une feuille de style pour formater la sortie?Que fait le consommateur rss qui le rend nécessaire? –

Répondre

0

Je fini par prendre une approche différente pour résoudre ce problème. J'ai déplacé le code hors de la page RssProducer.aspx dans la page RssConsumer.aspx. Je suis maintenant capable d'appliquer l'autorisation correcte à la fonctionnalité et c'est en fait plus efficace de cette façon car je n'ai plus besoin de produire/consommer de RSS-XML.

Merci à tous ceux qui ont pris le temps de m'aider avec ça.

-Frinny

Questions connexes