【问题标题】:How to retrieve data sent from Web application?如何检索从 Web 应用程序发送的数据?
【发布时间】:2013-01-11 16:48:53
【问题描述】:

在这里,我将单击按钮时的会话 ID 从一个 asp.net 应用程序传递到另一个 asp.net 应用程序。

应用 1:

protected void imgBTN_Click(object sender, EventArgs e)
{
   string sessionKey = HttpContext.Current.Session.SessionID;
   HttpWebRequest req = (HttpWebRequest)WebRequest.Create(@"http://localhost:43392/PartnerHome.aspx");
   string svcCredentials = Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(sessionKey));
   req.Headers.Add("Authorization", "Basic " + svcCredentials);
   try
   {
      using (WebResponse svcResponse = (HttpWebResponse)req.GetResponse())
      {
         using (StreamReader sr = new StreamReader(svcResponse.GetResponseStream()))
         {
            string jsonTxt = sr.ReadToEnd();
         }
      }
   }
   catch (Exception c)
   {
   }
}

我的问题是如何在我的第二个 asp.net 应用程序页面加载中检索此会话 ID

应用 2:

protected void Page_Load(object sender, EventArgs e)
{
}

有什么建议吗?

【问题讨论】:

  • 我的第一个问题是,为什么?
  • @Lloyd 为两个应用程序共享相同的会话 ID
  • 将会话移出 proc,例如移至 sql server,然后查看此帖子 stackoverflow.com/a/3151315/351383
  • @AntonioBakula stackoverflow.com/questions/14254737/…。我正在尝试使用 sql server 模式,对于第二个应用程序,我在 ASPState 数据库中获得了一个新的会话 ID。
  • 为什么同样需要它?

标签: c# asp.net session-state


【解决方案1】:

另一种解决方案:

我要做的是在应用程序1的页面上添加一个不可见的图像(一些透明像素):

<img src="http://site2.domain.com/transpimage.aspx">

不可见的图像实际上是站点 2 托管的 asp.net 页面。
在 transpimage.aspx 的页面加载事件中。我会输出一些图像:

public void Page_Load(...)
{
     using(Bitmap image = new Bitmap(1,1))
     using(MemoryStream stream = new MemoryStream())
     {
          image.Save(stream);
          Response.ContentType = "image/png";
          stream.WriteTo(Response.OutputStream);
          Response.End();
     }
}

由于来自应用程序 2 的图像由 aspx 页面(不是文件中的静态图像)提供,因此它将保持应用程序 2 的会话处于活动状态。我以前做过这个,它往往相当健壮。

如果您熟悉 HttpHandlers,则可以将“图像页面”编写为处理程序,但不要忘记,如果您将其编写为处理程序,则需要从 IRequiresSessionState 接口继承才能真正访问会话。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多