Есть три способа, которыми вы можете подойти к этому.
1) Даже если вы считаете, что предложенное вами решение «хакерское», на самом деле это неплохая идея.Я лично сделал это в проекте.Я создал частичные представления в зависимости от ролей, которые имел пользователь;однако вы бы добавили дополнительную бизнес-логику в представление.Попробуйте поэкспериментировать с ним и посмотрите, как он работает при развертывании.Это должна быть ваша первая попытка, так как на самом деле это ваша идея, и, экспериментируя, вы научитесь значительно.
2) Вы пытались проверить в контроллере роли пользователя и, в зависимости от этой роли, возвращать конкретное представление?В этом случае бизнес-логика останется в контроллере, и это считается хорошей практикой.
3) Даже если я не знаю, используете ли вы ORM (Entity Framework) или подключаетесь напрямую кбазу данных SQL, попробуйте получить роли члена с помощью хранимой процедуры и проверить его роли в классе обработчика БД.
Как вы можете видеть, существует три варианта проверки ролей участника.
Наконец, я рекомендую вам ознакомиться с авторизацией на основе утверждений / ролей.Это может помочь вам в будущих проектах:
https://www.c -sharpcorner.com / article / Asp-Net-mvc5-role-base-accessibility /