小编Mar*_*rek的帖子

在.NET Framework和.Net Core之间共享身份验证cookie

我想共享 ASP.NET Framework 应用程序提供的身份验证 cookie 并在 ASP.NET Core 应用程序中使用它。为了加密 cookie,我使用数据保护,这是 .NET Core 中的默认设置,并且需要 .NET Framework 包 Microsoft.AspNetCore.DataProtection.SystemWeb。

当 .NET Core 生成并保护 cookie 时,身份验证适用于 .NET Core 应用程序。当 .NET Framework 生成并保护 cookie 时,.NET Core 应用程序不会使用它。

根据https://learn.microsoft.com/en-us/aspnet/core/security/data-protection/compatibility/replacing-machinekey?view=aspnetcore-3.1,正确保护的cookie应以“CfDJ8”开头,这是神奇的“09 F0 C9 F0”标头的 Base64 表示形式,用于标识受数据保护系统保护的有效负载。.NET Core 生成的 cookie 以“CfDJ8”开头,但 .NET Framework 生成的 cookie 以“09F0C9F0”开头。看起来 cookie 已正确生成并受到保护,但 .NET Core 使用 base64 来编码 cookie,而 .NET Framework 使用十六进制字符串。

问题是,如何为 ASP.NET Core Data Protection 加密的身份验证 cookie 设置通用 cookie 编码?

c# authentication cookies asp.net-core

8
推荐指数
1
解决办法
5926
查看次数

标签 统计

asp.net-core ×1

authentication ×1

c# ×1

cookies ×1