Переключить текущую роль -. NET Core Identity - PullRequest
0 голосов
/ 01 мая 2020

Я использую. NET Core 3.1 с удостоверением.

У меня есть пользователь-администратор с roles = {Admin, Customer} и другие пользователи с roles = {User}. Поэтому я хочу, чтобы администратор мог поменять роль с помощью выпадающего списка в углу, например "Switch to customer view", и переключить текущую роль на Customer, чтобы он мог видеть представление Customer.

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

Есть ли возможность добиться этого без куки?

Это то, что я использовал с куки, чтобы установить его:

HttpContext.Response.Cookies.Append("currentRole", "Admin",
    new CookieOptions { Expires = DateTime.Now.AddYears(10), IsEssential = true, 
    SameSite = SameSiteMode.Lax, Secure = true });

И это для получения:

string currentRole = HttpContext.Request.Cookies["currentRole"];

1 Ответ

2 голосов
/ 01 мая 2020

Использование Cook * ie для сохранения чего-то подобного в качестве предпочтения не кажется проблематичным c, если вы не используете в качестве единственного фактора того, что возвращает бэкэнд.

Рассматривайте повара ie как запрос, а не право: «Пожалуйста, покажите мне опыт администратора» или «Пожалуйста, покажите мне опыт клиента». Когда ваш бэкэнд получает этот запрос, вы можете посмотреть на предпочтения, которые были переданы через повара ie, так же, как вы сейчас, но затем проверить его на предмет их авторизации, чтобы увидеть, соблюдать его или нет, и перейти к любой логике c вы используете для доставки этого опыта. Если клиент передает запрос «admin» cook ie, но у него нет роли «admin», вы можете отклонить его.

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