将会话从一个应用程序传递到另一个

时间:2009-08-28 01:46:42

标签: asp.net session

我想将会话从一个应用程序传递给另一个应用程序。 就像gmail和orkut正在做的那样,我想这样做。 任何人都可以对如何做到这一点有所了解吗?

不使用任何数据库都可以。

2 个答案:

答案 0 :(得分:1)

假设您想要控制整个管道 - 为了实现这一点,您需要一种集中式状态服务器,两个站点都可以在后端进行通信。对于许多较小的应用程序,数据库本身用作状态服务器,但这只是许多应用程序的一个实现。有专用的状态服务器产品some freesome paid

即使两个应用程序都在同一台服务器上,由于内存中会话为in process,因此无法使用开箱即用的ASP.NET功能直接共享会话。但是,在同一台物理计算机上运行上面列出的两个产品中的任何一个,并将两个应用程序都指向该状态服务器,将会让您几乎到达那里 - 它们的内存占用量就像它们真正共享会话一样,并且性能非常好(与网络I / O相比,进程间通信速度非常快)。

以下是两个或多个站点之间通用身份验证方案的more detailed description机制。

答案 1 :(得分:0)

您使用的是哪种语言?如果您在IIS上使用ASP.NET(我假设您使用标签),则可以使用< system.web>的machineKey属性来执行此操作。在web.config文件中。它看起来与此类似:

<system.web>
    <machineKey validationKey="(here)" decryptionKey="(here)" validation="SHA1" />
</system.web>

然后,您可以在&lt; forms&gt;上使用enableCrossAppRedirects =“true”属性。身份验证类型,如果您希望在应用程序之间传递身份验证密钥。

此外,如果您想生成machineKey,可以在http://www.orcsweb.com/articles/aspnetmachinekey.aspx使用Scott Forsyth的工具

最后,在发布第一个答案时,您可以实现ASP.NET状态服务器以更好地控制应用程序的状态。 ASP.NET团队将很快发布Velocity,处理分布式缓存。两者都有第三方工具。