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

时间:2019-07-10 19:13:35

标签: c# asp.net-core session-variables

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

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

enter image description here

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

1 个答案:

答案 0 :(得分:1)

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

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

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

这一切都非常复杂,而且我非常担心必须升级提取的某些代码(尽管不是太多代码)。

所以,这是类似的情况,而且可行。但这只是万不得已的做法,如果可能,我会尝试寻找其他解决方案

也许这可以给您一些想法...