IIS 在 ASP.NET Core 和 ASP.NET 应用程序之间共享 cookie

Posted

技术标签:

【中文标题】IIS 在 ASP.NET Core 和 ASP.NET 应用程序之间共享 cookie【英文标题】:IIS sharing cookies between ASP.NET Core and ASP.NET applications 【发布时间】:2018-12-20 20:40:11 【问题描述】:

我们有一套应用程序,它们都位于 IIS (Server 2012) 中的网站下。我们打算将所有这些应用程序迁移到 .NET Core 2.1,但我们已经没有时间了,现在我需要看看让旧应用程序通过 .NET Core 门户身份验证的前景。 旧的网站使用 Forms Authentication,我希望我可以让 .NET Core 门户在登录时创建一个 Forms Authentication Cookie,而旧的应用程序不会更明智

我发现了这个很有前途的 github -

https://github.com/synercoder/FormsAuthentication

这在本地完美运行

但是,当我将应用程序放在服务器上的 IIS 上时,它不起作用 - 较旧的应用程序会出现登录屏幕。通过使用提琴手,.NET Core 和旧应用程序似乎不会“共享”他们所有的 cookie。会话 cookie 是共享的,.NET Core 应用程序获取所有较旧的应用程序 cookie,但较旧的应用程序没有获取表单身份验证 Cookie 是其中之一的 .NET Core cookie。再次,他们很高兴可以在本地共享彼此的 cookie (IISExpress)

我已经走到了尽头,有人知道为什么旧应用程序在服务器上的 IIS 中看不到 .NET Core cookie 吗?

【问题讨论】:

【参考方案1】:

为了工作,您需要在 .NET Core 和旧应用程序上使用相同的应用程序池。

不用担心 .NET Core 应用程序的 .NET CLR 版本(无托管代码)。它适用于 v4。

【讨论】:

以上是关于IIS 在 ASP.NET Core 和 ASP.NET 应用程序之间共享 cookie的主要内容,如果未能解决你的问题,请参考以下文章

IIS在ASP.NET Core下的两种部署模式

Windows + IIS 环境部署Asp.Net Core App

[Asp.Net Core]IIS部署

ASP.NET Core--.net core 3.1 部署到 IIS

Asp.net core 2.1 Web App 无法在 IIS 上正确呈现

ASP.NET Core 在 IIS 下的两种部署模式