Я настраиваю систему, в которой после входа в систему пользователь может действовать от имени определенной организации. Пользователю предоставляется список организаций, и он сам выбирает, какую из них «выдавать».
Эта информация является динамической и может меняться при входе в систему, поэтому она не должна сохраняться в базе данных.
Я понял, что могу попытаться добавить дополнительные претензии к пользователю. Я уже использую его для хранения информации. Я достигаю этого, внедряя свой собственный UserClaimsPrincipalFactory, и это довольно просто, поскольку эта информация сохраняется у пользователя и не меняется.
Чтобы добавить свои заявки в организации, я попробовал другой подход, но ни один из них не сработал.
Добавление новой заявки непосредственно в User.Identity не сохраняется при следующем запросе.
Добавление новой заявки и вход с помощью httpContext также теряется в следующем запросе.
Полагаю, это все из-за моего UserClaimsPrincipalFactory.
Единственный способ, которым я нашел, как сохранить его для сеанса, - использовать userManager.
await userManager.AddClaimAsync(user, new System.Security.Claims.Claim("organizationId", "myOrganization"));
Однако userManager сохраняет данные в БД, и, как я сказал в начале, эти данные являются динамическими и меняются между входами в систему, они не должны сохраняться в БД.
Я нашел этот вопрос по теме: Хранить данные в cookie с идентификатором ядра asp.net
но, к сожалению, решение сохраняет данные в базе данных.
Этот вопрос похож на мой вариант использования, но остался без ответа Как динамически добавить претензию к пользователю?