Код: Выделить всё
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(50);
options.Cookie.IsEssential = true;
options.Cookie.HttpOnly = true;
options.Cookie.SameSite = SameSiteMode.Strict;
});
...
app.UseSession();
https://example.com/Login: ошибка при снятии защиты файла cookie сеанса.
Logger: Microsoft.AspNetCore.Session.SessionMiddleware
Callsite: Microsoft .AspNetCore.Session.CookieProtection.Unprotect
Исключение: System.Security.Cryptography.CryptographicException:
ключ {x-y-z} не найден в связке ключей. Для получения дополнительной информации перейдите
по адресу https://aka.ms/aspnet/dataprotectionwarning по адресу
Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.UnprotectCore(Byte[]
protectedData, BooleanallowOperationsOnRevokedKeys, UnprotectStatus&
статус) в
Microsoft.AspNetCore.Session.CookieProtection.Unprotect(IDataProtector
protector, String protectedText, регистратор ILogger)
Код: Выделить всё
SessionКод: Выделить всё
[HttpPost]
public async Task Login(...)
{
...
await announcementService.BuildAnnouncementsFor(user);
...
}
Код: Выделить всё
services.AddHttpContextAccessor();
services.AddSingleton();
Ни профиль пользователя, ни реестр HKLM недоступны. Использование хранилища эфемерных
ключей. Защищенные данные будут недоступны после
закрытия приложения.
В приведенном выше последнем предупреждении исчезло, но SessionMiddleware все еще предупреждает о Ключ шифрования не найден в связке ключей. Действительно, ключи, указанные в предупреждениях, не находятся в папке C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys, где IIS по умолчанию ищет ключи.
Мне бы очень хотелось, чтобы эти предупреждения исчезли, но я не знаю, что еще нужно настроить — в коде или в IIS.
Подробнее здесь: https://stackoverflow.com/questions/786 ... -runs-on-i
Мобильная версия