Я создаю приложение ASP.NET MVC, которое позволит пользователю подключаться к одной из нескольких баз данных (с той же схемой) в зависимости от их выбора. Пользователь выберет базу данных до входа в систему и затем будет аутентифицирован против этой базы данных.Авторизовать атрибут с несколькими поставщиками ролей
Я добавил несколько поставщиков роли в web.config, каждый из которых имеет другую строку соединения, соответствующую каждой из доступных баз данных.
Я понимаю, что я могу получить доступ к поставщикам ролей с коллекцией Roles.providers, но я не понимаю, как я могу выбрать, какую роль провайдера быть пользователь с помощью [Authorize] атрибутом в моих контроллерах
Моих контроллеров что-то вроде этого:
namespace MyApp.Controllers
{
[Authorize(Roles = "admin")]
public class AdminController : Controller
{
Я предполагаю, что это проверит роль пользователей против поставщика роли по умолчанию. Как выбрать во время выполнения, какой поставщик роли будет использоваться для атрибута [Авторизовать]?
filterContext.ActionDescriptor.ActionName! = "InsfectPrivileges"? В противном случае цикл перенаправления. Какова роль анонов? Anonymous? – Mzn
Хороший улов на '! ='. Это исправлено. Да, «anon» является «анонимным». Я не могу вспомнить, почему я включил это (я ответил это 3 года назад!). –