在 .NET 应用程序中启用跨框架会话共享
问题:
部署在同一服务器上的两个 Web 应用程序(一个基于 .NET 2.0 构建,另一个基于 .NET 3.5 (MVC2))需要共享会话状态。 尽管 StateServer
模式和连接字符串配置相同,MVC2 应用程序仍无法检索 .NET 2.0 应用程序启动的会话。
解决方案:
本质上不支持使用不同框架的 .NET 应用程序之间的直接会话共享。集中式会话管理解决方案或数据库支持的会话存储是必要的。
实施:
采用两个应用程序均可访问的共享会话提供程序。 内置的 SQL Server 会话提供程序是一个合适的选择。 配置两个应用程序的 web.config
文件,如下所示:
sessionState
配置:<code class="language-xml"><sessionState mode="SQLServer" sqlConnectionString="..." /></code>
machineKey
配置:<code class="language-xml"><machineKey decryption="AES" validation="SHA1" validationKey="..." /></code>
至关重要的是,两个应用程序必须连接到同一个 SQL Server 数据库。 此外,TempGetAppID
存储过程可能需要修改,如相关 MSDN 文档中详细说明(如果有的话,文档链接将很有帮助)。
通过使用一致的 machineKey
和共享会话提供程序,两个应用程序都可以成功共享会话密钥并形成身份验证 cookie,从而实现跨不同 .NET 框架版本的无缝会话管理。
以上是具有不同框架的两个 .NET 应用程序如何共享会话状态?的详细内容。更多信息请关注PHP中文网其他相关文章!