2009-06-29 4 views
1

Я проделал много исследований по попытке выполнить это, но я действительно не нашел четкий «лучший способ» для этого. Я работаю над приложением, в котором много разных групп пользователей, по сути, он позволяет нескольким компаниям использовать одно и то же приложение - очень похоже на приложения Google. Вот пример того, что я имею в виду:ASP.NET MVC несколько различных групп пользователей - авторизация/аутентификация

В Google Apps - пользователь отправляется на mail.company.com -> они перенаправляются на mail.google.com/a/company.com.

Я понимаю, как использовать записи CNAME и вытащить хост из домена, как только он был перенаправлен в мое приложение, чтобы мое приложение перевело URL-адрес на my.app.com/company.com. Кроме того, все мои маршруты настроены на использование атрибута {companyURL}.

Так что теперь проблема возникает, как мне обеспечить «динамическую» проверку роли? Похоже, что было бы достаточно просто создать поставщика настраиваемой роли, который задает имя компании и другие роли в этой компании, но я не знаю, как получить {companyURL} в фильтр авторизации. Возможно ли иметь динамическую переменную в фильтре авторизации или мне нужно проверить это внутри каждого контроллера/действия (используя некоторую функцию)? Или есть еще один способ сделать это, что, возможно, я еще не думал?

Благодаря

ответ

1

Я хотел бы пойти с классом поставщика пользовательских ролей или пользовательских IAuthenticationFilter, если у вас уже есть роли, определенные в другой системе.

+0

Спасибо. Я думаю, что я собираюсь использовать методы OnAuthorization в MVC для запуска некоторого входа на основе контроллера, который вызвал фильтр действия Authorize(). – Tommy

Смежные вопросы