是否有一个优雅的解决方案可以跨多个 ASP.NET 应用程序同步会话?我敢肯定这很容易被认为是一个安全漏洞,但是涉及到一个第 3 方 ASP.NET 应用程序,无法对其进行扩展。出于这个原因,正在开发第二个 [相关] 站点,但需要直接访问在第 3 方应用程序上创建的会话。
例如,当用户登录/退出一个站点时,应该在另一个站点上发生相同的操作。但是,重要的是要注意这超出了典型的 SSO。
是否有一个优雅的解决方案可以跨多个 ASP.NET 应用程序同步会话?我敢肯定这很容易被认为是一个安全漏洞,但是涉及到一个第 3 方 ASP.NET 应用程序,无法对其进行扩展。出于这个原因,正在开发第二个 [相关] 站点,但需要直接访问在第 3 方应用程序上创建的会话。
例如,当用户登录/退出一个站点时,应该在另一个站点上发生相同的操作。但是,重要的是要注意这超出了典型的 SSO。
试试 memcached 会话状态提供程序:http: //www.codeplex.com/memcachedproviders 由于缓存在单独的服务中运行,我很确定您可以从不同的应用程序访问同一个存储池。
使用 SQL Server 存储是您最简单的解决方案之一。请确保您对 SQL 对象设置了适当的权限。我不熟悉 Manu 的建议。实际上还有另一种方法,它有点困难。它是通过对类似纪念品的模式进行修改来完成的。App1 将会话信息存储在数据库中,但其他应用程序 App2 访问数据库,会话信息通过 App2 可以引用的服务公开。一旦用户移至 app2 并通过身份验证,其会话将使用该服务恢复。
希望有帮助。它在我的一个项目中对我有用。
假设应用程序在其 cookie 中存储一些关键数据,则 cookie 是一个选项。如果另一个站点在同一个域中,它可以读取它们。
使用 NCache - http://www.alachisoft.com/ncache/
它会帮助你实现你正在寻找的东西。
它还内置了分布式 ASP.NET 会话状态缓存,并将帮助您在多个站点之间共享会话。详情在这里