在C#中,如何将会话从一个子域传递到另一个子域? 例如,我使用IIS localhost,我试图从
发送值 http:\\localhost\site1
至http:\\localhost\site2
使用以下方式
In site1
Session["test"] = "My value";
In site2
Response.Write(Convert.ToString(Session["test"]));
上述方法可以很好地将值从一个页面传递到另一个页面但我需要将值从一个子域传递到另一个子域,即一个IIS Web应用程序传递到另一个IIS Web应用程序。
答案 0 :(得分:1)
您无法使用默认会话状态提供程序执行此操作。您必须使用提供者模型(SessionStateStoreProvider)自行滚动,请参阅:here
您也可以不使用提供者模型并执行this
之类的操作修改强> 哈克:我想你可以做到。 here
答案 1 :(得分:0)
我正在通过公共数据库交换会话ID(和相关设置)来做类似的事情。
即。
test
。test
的值(在您的示例中为“我的值”)为了增强安全性,我还为表写了一个时间戳,让站点2只读取会话ID 和时间戳(有一些容差)匹配的那些行。此外,站点2在读取后删除记录。
当然,这不是直截了当的,可能不是你想要实现的100%,但可能有一些想法可以建立在其上。
答案 2 :(得分:0)
会话特定于应用程序。你可以从site1发布到site2(例如通过JQuery)。帖子将允许您发送数据(隐藏)。然后将帖子中的查询字符串分配给site2上的新会话变量。