首页 > 解决方案 > 我的 .Net Core 应用程序如何使用来自另一个应用程序的会话变量?

问题描述

我的 .Net Core 应用程序需要使用在另一个应用程序(WebForms 应用程序)中设置的会话变量。以下是它在该 WebForms 应用程序中的配置方式:

    <sessionState mode="SQLServer" sqlConnectionString="data source=.;UID=SessionStateUser;Password=somepassword;Connect Timeout=15;" timeout="20" />

在此处输入图像描述

如何从 .Net Core 应用程序访问会话变量?

标签: c#asp.net-coresession-variables

解决方案


这不完全是您的情况,但我能够获得一个单独的 Web 应用程序来从我的 ASP.NET Core Web 应用程序访问会话数据(存储在 SQL Server 中)。

在 ASP.NET Core 中,当由 SQL Server 支持时,会话存储在具有列 ID 和列值的表中。ID 是会话 ID,Value 是会话数据。

会话 ID 作为加密值存储在名为 .AspNetCore.Session 的 cookie 中。在我单独的 Web 应用程序中,我检索了此 cookie 的值,未对其进行保护/未加密,然后利用一些开源 asp.net 核心代码(尤其是 IDistributedCache)使用未加密的密钥加载会话数据。

这一切都非常复杂,我很害怕不得不升级我提取的一些代码(尽管它不是太多的代码)。

所以,这是一个类似的情况,它是可行的。但这只是作为最后的手段,如果可能的话,我会尝试找到不同的解决方案

也许这会给你一些想法......


推荐阅读