Динамические утверждения ядра Asp.net без сохранения БД - PullRequest
1 голос
/ 27 июня 2019

Я настраиваю систему, в которой после входа в систему пользователь может действовать от имени определенной организации. Пользователю предоставляется список организаций, и он сам выбирает, какую из них «выдавать».

Эта информация является динамической и может меняться при входе в систему, поэтому она не должна сохраняться в базе данных.

Я понял, что могу попытаться добавить дополнительные претензии к пользователю. Я уже использую его для хранения информации. Я достигаю этого, внедряя свой собственный UserClaimsPrincipalFactory, и это довольно просто, поскольку эта информация сохраняется у пользователя и не меняется.

Чтобы добавить свои заявки в организации, я попробовал другой подход, но ни один из них не сработал.

Добавление новой заявки непосредственно в User.Identity не сохраняется при следующем запросе.

Добавление новой заявки и вход с помощью httpContext также теряется в следующем запросе.

Полагаю, это все из-за моего UserClaimsPrincipalFactory.

Единственный способ, которым я нашел, как сохранить его для сеанса, - использовать userManager.

await userManager.AddClaimAsync(user, new System.Security.Claims.Claim("organizationId", "myOrganization"));

Однако userManager сохраняет данные в БД, и, как я сказал в начале, эти данные являются динамическими и меняются между входами в систему, они не должны сохраняться в БД.

Я нашел этот вопрос по теме: Хранить данные в cookie с идентификатором ядра asp.net

но, к сожалению, решение сохраняет данные в базе данных.

Этот вопрос похож на мой вариант использования, но остался без ответа Как динамически добавить претензию к пользователю?

1 Ответ

0 голосов
/ 01 июля 2019

Я бы порекомендовал использовать значение заголовка пользовательского ответа или файл cookie, чтобы сохранить это значение для данного сеанса.Посмотрите, поможет ли этот вопрос: Как добавить пользовательский заголовок

Добавление файла cookie с тем же сроком действия, что и срок действия сеанса, как в этом сообщении: Создание файла cookie Надеждаэто поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...