我的 .Net Core 应用程序如何使用来自另一个应用程序的会话变量?

How can my .Net Core application use session variables from another application?

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

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

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

这不完全是你的情况,但我能够从我的 ASP.NET 核心网络应用程序中获得一个单独的网络应用程序来访问会话数据(存储在 SQL 服务器中)。

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

会话 ID 作为加密值存储在名为 .AspNetCore.Session 的 cookie 中。 在我单独的网络应用程序中,我检索了这个 cookie 的值,unprotected/unencrypted 它,然后利用一些 open-source asp.net 核心代码(尤其是 IDistributedCache)使用未加密的方式加载会话数据钥匙。

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

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

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