我想将会话从一个应用程序传递到另一个应用程序。就像Gmail和Orkut正在做的那样,我想这样做。有谁知道怎么做吗?可以不使用任何DB。
myzjeezk1#
假设您想要控制整个管道-要实现这一点,您需要某种类型的集中式状态服务器,两个站点都可以在后端与之通信。对于许多较小的应用程序,数据库本身被用作状态服务器,但这只是许多实现中的一个。有专用的状态服务器产品some free和some paid。即使两个应用程序都在同一台服务器上,也不可能使用现成的ASP.NET功能直接共享会话,因为内存中的会话是in process。然而,在同一台物理机器上运行上面列出的两个产品中的任何一个,并将两个应用程序都指向该状态服务器,将使您接近目标-这将是相同的内存占用,就像它们真正共享会话一样,并且性能非常好(与网络I/O相比,进程间通信非常快)。下面是对两个或多个站点之间的通用身份验证方案的机制的更详细描述。
hivapdat2#
你在用什么语言?如果您在IIS上使用ASP.NET,我会根据您的标记来假定,您可以使用web.config文件中的machineKey属性来实现<system.web>。它看起来类似于这样:
<system.web> <machineKey validationKey="(here)" decryptionKey="(here)" validation="SHA1" /> </system.web>
然后,如果您希望在应用程序之间传递身份验证密钥,则可以在身份验证类型上使用enableCrossAppRedirects=“true”属性。另外,如果您想生成一个machineKey,可以使用福赛斯的工具http://www.orcsweb.com/articles/aspnetmachinekey.aspx最后,正如第一个答案所示,您可以实现ASP.NET状态服务器,以便更好地控制应用程序的状态。ASP.NET团队将很快发布Velocity,它可以处理分布式缓存。这两种工具都有第三方工具。
2条答案
按热度按时间myzjeezk1#
假设您想要控制整个管道-要实现这一点,您需要某种类型的集中式状态服务器,两个站点都可以在后端与之通信。对于许多较小的应用程序,数据库本身被用作状态服务器,但这只是许多实现中的一个。有专用的状态服务器产品some free和some paid。
即使两个应用程序都在同一台服务器上,也不可能使用现成的ASP.NET功能直接共享会话,因为内存中的会话是in process。然而,在同一台物理机器上运行上面列出的两个产品中的任何一个,并将两个应用程序都指向该状态服务器,将使您接近目标-这将是相同的内存占用,就像它们真正共享会话一样,并且性能非常好(与网络I/O相比,进程间通信非常快)。
下面是对两个或多个站点之间的通用身份验证方案的机制的更详细描述。
hivapdat2#
你在用什么语言?如果您在IIS上使用ASP.NET,我会根据您的标记来假定,您可以使用web.config文件中的machineKey属性来实现<system.web>。它看起来类似于这样:
然后,如果您希望在应用程序之间传递身份验证密钥,则可以在身份验证类型上使用enableCrossAppRedirects=“true”属性。
另外,如果您想生成一个machineKey,可以使用福赛斯的工具http://www.orcsweb.com/articles/aspnetmachinekey.aspx
最后,正如第一个答案所示,您可以实现ASP.NET状态服务器,以便更好地控制应用程序的状态。ASP.NET团队将很快发布Velocity,它可以处理分布式缓存。这两种工具都有第三方工具。