Аутентификация при использовании маршрута субдомена - PullRequest
0 голосов
/ 28 марта 2012

Я работаю над своим вторым мультитенантным приложением MVC. Мой первый не использовал поддоменов. Вместо этого он использовал маршруты с первым параметром для идентификатора клиента (clientportal).

Route route = new Route("{clientportal}/{controller}/{action}/{id}",
                        new RouteValueDictionary(new
                        {
                            controller = "ClientPortalHome",
                            action = "Index",
                            id = UrlParameter.Optional
                    }), new PortalRouteHandler());

На этот раз мне нужно использовать реальные субдомены.

Client1.mysite.com
Client2.mysite.com

Для этого я реализовал маршрут субдомена, подобный следующему:

Можно ли создать маршрут ASP.NET MVC на основе субдомена?

Мой вопрос такой. Где найти правильное место для загрузки моего пользователя и проверки подлинности запроса?

Application_AuthenticateRequest запускается до маршрута субдомена. Это означает, что во время выполнения AuthenticateRequest я не знаю, для какого арендатора предназначен запрос.

Возможно, я могу загрузить пользователя и аутентифицировать запрос в коде маршрута субдомена, но это пахнет неправильно.

Что мне здесь не хватает?

1 Ответ

1 голос
/ 28 марта 2012

Вы должны использовать пользовательский фильтр авторизации.Он запускается в самом начале процесса контроллера, и у вас будет вся информация, необходимая для аутентификации пользователя в ControllerContext.

...