Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2298 / 1614 / 400
Регистрация: 26.06.2017
Сообщений: 4,780
Записей в блоге: 1

Вызов методов в зависимости от роли пользователя

08.12.2023, 11:09. Показов 2333. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня всем.

Вводная часть - пишется проект Web API 2.0 (знаю что шаблон старый, не пинайте, так надо). После авторизации клиента для объекта User в контексте устанавливается свойство Role, но не как обычно типа "admin", "user" и т.п., а перечислением:
C#
1
2
3
4
5
6
enum UserRole
{
  AllRight,
  Viewer,
  Writer
}
В общем вопрос: как по феншую организовать вызов методов контроллера в зависимости от роли клиента?
Конечно можно сделать так:
C#
1
2
3
4
5
6
7
8
9
10
class MyController : ApiController
{
  public Put(int id, [FromBody]MyClass value)
  {
     if (User.Role == UserRole.Writer)
     {
        // реализация
     }
  }
}
Но мне кажется надо что-то типа такого получить:
C#
1
2
3
4
5
6
7
8
class MyController : ApiController
{
  [Role("Writer")]
  public Put(int id, [FromBody]MyClass value)
  {
      // реализация
  }
}
Повторю вопрос - как правильно сделать? Что для этого нужно дополнительно написать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.12.2023, 11:09
Ответы с готовыми решениями:

Видимость кнопки в зависимости от роли пользователя
Если у меня такой код, как сделать чтобы показывала кнопка у одного пользователя using System; using System.Collections.Generic; ...

Выбор отчетов в зависимости от роли пользователя
Как сделать привязку пользователя к определенному отчету, чтобы при выборе пользователя выводились те отчеты, которые доступны ему, а не...

Содержимое представления в зависимости от роли пользователя
Здравствуйте, друзья! В приложении реализована авторизация на основе Identity. Имеется 3 вида ролей пользователей: user, manager и admin....

21
Эксперт .NET
 Аватар для Usaga
14783 / 9557 / 1366
Регистрация: 21.01.2016
Сообщений: 36,033
19.12.2023, 08:22
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от HF Посмотреть сообщение
Но я до сих пор не понял - "можно ли не создавать служебные таблицы, а пользоваться своими?"
Можно. Там кастомные сторы можно заводить. Но в случае с JWT я не вижу смысла в этой библиотеке. Собственная реализация такой авторизации очень проста.
1
2298 / 1614 / 400
Регистрация: 26.06.2017
Сообщений: 4,780
Записей в блоге: 1
19.12.2023, 08:44  [ТС]
В общем всем ещё раз огромное спасибо!
Я принял решение не встраивать всякие OWIN и не нарушать структуру приложения, а добавить в проект свой DelegatingHandler для аутентификации и кастомный фильтр с атрибутами для авторизации.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.12.2023, 08:44

Скрыть пункт меню в зависимости от роли пользователя
Доброго времени суток. Не селен в php, но нужна помощь. есть код на html <nav class="woocommerce-MyAccount-navigation"> ...

Открытие определенных форм в зависимости от роли пользователя
Добрый день, в Access 2010 нужно открыть - форму для логистов, если введены данные роли логиста - форму для бухгалтеров, если...

PowerPivot - настройки доступа к данным зависимости от роли пользователя
Доброго времени суток! Помогите, пожалуйста. Перепробовал всё, на что хватает знаний, к сожалению, без результата. Коротко о...

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

Вывод разных форм в зависимости от роли пользователя (admin или user)
В базе данных имеется таблица login с id, Логин, Пароль, role. role может быть user или admin Подскажите, пожалуйста, как в код ниже...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru