我想将会话从一个应用程序传递给另一个应用程序。 就像gmail和orkut正在做的那样,我想这样做。 任何人都可以对如何做到这一点有所了解吗?
不使用任何数据库都可以。
答案 0 :(得分:1)
假设您想要控制整个管道 - 为了实现这一点,您需要一种集中式状态服务器,两个站点都可以在后端进行通信。对于许多较小的应用程序,数据库本身用作状态服务器,但这只是许多应用程序的一个实现。有专用的状态服务器产品some free和some 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,处理分布式缓存。两者都有第三方工具。