Я новичок в MVC и разрабатываю приложение с ASP.NET MVC 4. Для аутентификации я использую аутентификацию Windows с Active Directory в домене. Следующим шагом является авторизация пользователей (без использования членства). Просмотрел несколько статей и все же нашел хороший подход.
У меня есть 3 собственные таблицы базы данных (Users
, Roles
, UserRoles
) для поддержки авторизованных пользователей с несколькими уровнями администратора. Это много для многих. Например, может быть «администратор» (полный доступ к системе с правами создания), «оператор данных» (права на обновление только для раздела) и «пользователь поддержки» (доступ только для чтения / только для просмотра). Поскольку это много для многих, пользователь может быть «пользователем службы поддержки», а также «оператором ввода данных».
Для конкретного раздела мне нужно контролировать доступ на основе методов. Например, предположим, что есть контроллер с именем «InvoiceController». Возможны следующие методы.
CreateNewInvoice() // Accessible only by admin
UpdateInvoice(...) // Accessible for admin and data operator
ViewInvoice(...) // Accessible for admin, data operator and support user
(Только пользователи, существующие в таблице ролей, могут получить доступ к системе. Доступ запрещен для других.)
Пожалуйста, дайте мне знать, как я могу использовать аутентификацию на уровне метода на основе ролей, хранящихся в базе данных.
RedirectResult
в фильтре 08.11.2012