satbhai Ответов: 1

В MVC, как я могу написать код в методе controller-action для доступа к пользователям и ролям атрибута authorize?


Я новичок в MVC5. Пожалуйста помочь.

Ниже приведен класс контроллера, украшенный атрибутом <authorize>.
Атрибут Authorize находится как на уровне класса, так и на уровне действия.
Я хочу получить доступ к пользователям и ролям в контроллере и действии, к которому он принадлежит.
Как написать [магический код] для этого?
Я пытаюсь иметь авторизацию и аутентификацию со встроенной авторизацией MVC.
Я хочу использовать базу данных для аутентификации.
Мой план состоит в том, чтобы написать свой собственный код в методе действия для авторизации и аутентификации или дать вызов универсальной функции.


&ЛТ;авторизация(пользователи:="Пользователь1,Пользователь3", роли:="роль role1"роль role2")&ГТ;
Открытый Класс AbcController : Наследует Контроллер
.
.
.
&ЛТ;авторизация(пользователи:="Пользователь2,Пользователь4"), роли:="Role3,Role4"&ГТ;
XyzAction Государственной Функции () Как ActionResult
.
.
.
dim s1, s2, s3, s4 в виде строки
- Здесь магический код...
Тогда, значения С1 до С4 не ожидается, так как:
s1 => "Пользователь2,Пользователь4"
С2 =&ГТ; "роль role1,роли системы2"
s3 => "User2,User4" и
С4 =&ГТ; "Role3,Role4"
.
.
.
Конечная Функция
.
.
.
End Класса

Что я уже пробовал:

Я перепробовал слишком много вещей в том числе:
Переопределение метода OnAuthorization
Использование Ролей.GetRolesForUser(Пользователь.Идентичности.Название)
Прочитал много статей, но не нашел ни одной полезной.
Много раз думал, возможно ли это?

1 Ответов

Рейтинг:
2

Vincent Maverick Durano

Я написал серию статей о ASP.NET MVC 5, который включает в себя авторизацию и аутентификацию некоторое время назад. Вот прямая ссылка: ASP.NET MVC 5: Создание вашего первого веб - приложения- Часть 2[^]

Если вы новичок в этом деле ASP.NET MVC тогда я бы рекомендовал вам начать с части 1, чтобы вы могли лучше понять, как все работает в MVC: ASP.NET MVC 5: Создание вашего первого веб - приложения- Часть 1[^]

PS: код, используемый в этой статье, написан на языке C#, но он должен быть довольно понятным. Просто используйте онлайн-конвертер для преобразования C# в VB.NET: Преобразователь кода C# в VB и VB в C# – Telerik[^]


satbhai

Большое спасибо, сэр.

Теперь есть две аннотации данных к моему методу действия следующим образом:

'Получить: домой/про нас
'Вот, пользователи "пользователя user01 и "User03" и роли "менеджер и SystemUser"
<аутентификация("менеджер", "системный пользователь")>
<авторизация(пользователи:="user01,user03")>
Функция AboutUs() Как ActionResult
Возвращение Смотреть()
Конечная Функция

Теперь аутентификация работает идеально. Пользователь существует, но роль отсутствует.
Я также могу показать сообщение: "Вы не прошли проверку подлинности для этой страницы"

Такое сообщение Я хочу дать, когда пользователь отсутствует независимо от наличия роли.
например: вы не авторизованы для этой страницы.
Как мне этого добиться?

Пробовал, но пока не получилось...