因为会话,身份验证等内容涉及加密,所以应用程序只能以某种方式配置为以相同方式加密和解密事物,才能“共享”它 .
对于较旧的ASP.NET应用程序,这是通过机器密钥处理的 . 您可以在Web.config中为每个应用程序设置相同的机器密钥,然后他们可以互相理解 .
但问题在于,ASP.NET和ASP.NET Core从根本上处理会话甚至加密等问题 . ASP.NET通过机器密钥加密,而ASP.NET Core使用数据保护提供程序 . 它甚至没有使用Web.config . 然后,更糟糕的是,持久会话状态的实际机制是不同的,所以即使你能以某种方式使它们能够相互加密和解密's stuff, they wouldn't能够理解实际的会话数据 .
长和短,不,你不能在ASP.NET和ASP.NET核心应用程序之间共享会话 .
此外,虽然您可以在同一个应用程序池中运行它们(您可以从技术上在同一个应用程序池中运行您想要的任何内容),但这并不能提供任何神奇的属性 . 相反,在同一个应用程序池中只需将应用程序的命运联系在一起 . 如果一个崩溃,通常最好隔离自己的应用程序池中的应用程序 .