我们有一个在.NET 4.61框架上运行的ASP.net Web窗体应用程序,以及在同一个.NET 4.61框架上运行的Asp.NET Core应用程序。
Web窗体应用程序使用会话cookie和SQL Server来存储会话信息。
有没有办法配置Asp.NET Core应用程序来读取和使用该会话数据?
感谢。
答案 0 :(得分:1)
没有。无法在ASP.NET应用程序和ASP.NET Core应用程序之间共享会话状态。这是因为两个主要原因:
ASP.NET和ASP.NET Core处理会话存储的方式不同。在ASP.NET中,您有会话提供程序,而在ASP.NET Core中,它使用IDistributedCache
进行会话状态。虽然你可以使用类似SQL Server的东西,但实际存储状态的机制在每种情况下都不一样,因此,人们无法读取对方正在做的事情。
会话数据已加密,ASP.NET中的加密机制与ASP.NET Core的加密机制不同。在ASP.NET中,机器密钥用于加密/解密,但在ASP.NET Core中,没有机器密钥的概念。相反,ASP.NET Core使用IDataProtectionProvider
的实例来加密/解密。因此,即使您可以同时看到同一个会话存储和能够读取它,也无法解密另一个存储的数据。