您可以在Web窗体应用程序和Asp.NET Core MVC应用程序之间共享SQL Server会话吗?

时间:2018-02-20 16:05:00

标签: asp.net-core asp.net-core-mvc asp.net-core-2.0

我们有一个在.NET 4.61框架上运行的ASP.net Web窗体应用程序,以及在同一个.NET 4.61框架上运行的Asp.NET Core应用程序。

Web窗体应用程序使用会话cookie和SQL Server来存储会话信息。

有没有办法配置Asp.NET Core应用程序来读取和使用该会话数据?

感谢。

1 个答案:

答案 0 :(得分:1)

没有。无法在ASP.NET应用程序和ASP.NET Core应用程序之间共享会话状态。这是因为两个主要原因:

  1. ASP.NET和ASP.NET Core处理会话存储的方式不同。在ASP.NET中,您有会话提供程序,而在ASP.NET Core中,它使用IDistributedCache进行会话状态。虽然你可以使用类似SQL Server的东西,但实际存储状态的机制在每种情况下都不一样,因此,人们无法读取对方正在做的事情。

  2. 会话数据已加密,ASP.NET中的加密机制与ASP.NET Core的加密机制不同。在ASP.NET中,机器密钥用于加密/解密,但在ASP.NET Core中,没有机器密钥的概念。相反,ASP.NET Core使用IDataProtectionProvider的实例来加密/解密。因此,即使您可以同时看到同一个会话存储能够读取它,也无法解密另一个存储的数据。