Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 将会话从一个应用程序传递到另一个应用程序_Asp.net_Session - Fatal编程技术网

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

Asp.net 将会话从一个应用程序传递到另一个应用程序,asp.net,session,Asp.net,Session,我想将会话从一个应用程序传递到另一个应用程序。 就像gmail和orkut正在做的一样,我想这样做。 有人知道怎么做吗 如果您想控制整个管道,那么不使用任何数据库也可以做到这一点。要实现这一点,您需要某种集中式状态服务器,两个站点都可以在后端与之通信。对于许多较小的应用程序,数据库本身被用作状态服务器,但这只是许多应用程序的一种实现。有专用的状态服务器产品,以及 即使两个应用程序都在同一台服务器上,使用现成的ASP.NET功能也不可能直接共享会话,因为内存中的会话是可用的。但是,在与您的两个应用

我想将会话从一个应用程序传递到另一个应用程序。 就像gmail和orkut正在做的一样,我想这样做。 有人知道怎么做吗


如果您想控制整个管道,那么不使用任何数据库也可以做到这一点。

要实现这一点,您需要某种集中式状态服务器,两个站点都可以在后端与之通信。对于许多较小的应用程序,数据库本身被用作状态服务器,但这只是许多应用程序的一种实现。有专用的状态服务器产品,以及

即使两个应用程序都在同一台服务器上,使用现成的ASP.NET功能也不可能直接共享会话,因为内存中的会话是可用的。但是,在与您的两个应用程序相同的物理机器上运行上面列出的两个产品中的任何一个,并将两个应用程序指向该状态服务器,将使您几乎达到这一目标—它们将占用相同的内存,就好像它们真正共享了会话一样,而且性能非常好(与网络I/O相比,进程间通信速度非常快)


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

您使用的是什么语言?如果您在IIS上使用ASP.NET(我根据您的标记假定),您可以使用web.config文件中的machineKey属性来执行此操作。它看起来类似于:

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

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

此外,如果您想生成machineKey,可以在以下位置使用Scott Forsyth的工具:


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

您需要更具体一些。您是说在您自己的应用程序之间?还是说您在在OAuth中休息?是的,这两个应用程序托管在一个服务器上,另一个存在于其他服务器的虚拟目录中。那么您希望共享什么?