Я пытаюсь использовать файл cookie для аутентификации, созданный в .NET 4.6.1, и использовать его в приложении .NET Core.Я нашел несколько статей, которые все дают одно и то же предложение о том, как это сделать:
https://docs.microsoft.com/en-us/aspnet/core/security/cookie-sharing?view=aspnetcore-2.1#sharing-authentication-cookies-between-aspnet-4x-and-aspnet-core-applications
Код выглядит следующим образом:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "Identity.Application",
CookieName = ".AspNet.SharedCookie",
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity =
SecurityStampValidator
.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) =>
user.GenerateUserIdentityAsync(manager))
},
TicketDataFormat = new AspNetTicketDataFormat(
new DataProtectorShim(
DataProtectionProvider.Create(GetKeyRingDirInfo(),
(builder) => { builder.SetApplicationName("SharedCookieApp"); })
.CreateProtector(
"Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationMiddleware",
"Identity.Application",
"v2"))),
CookieManager = new ChunkingCookieManager()
});
Раздел TicketDataFormat впараметры - это то, что шифрует cookie.
Проблема в том, что оригинальный cookie, сгенерированный в 4.6.1, имел размер около 4 КБ, но когда я шифрую cookie, используя процесс, описанный в статье, cookie всплывает вразмер примерно до 58 КБ через 15 кусочков.Это приводит к тому, что сайт отправляет ошибку 400, поскольку заголовок ответа слишком велик.Я не мог найти способ сделать эти куки меньше.
Кто-нибудь испытывал это?Как ты справился с этим?
Спасибо.