Я работаю над своим вторым мультитенантным приложением 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 я не знаю, для какого арендатора предназначен запрос.
Возможно, я могу загрузить пользователя и аутентифицировать запрос в коде маршрута субдомена, но это пахнет неправильно.
Что мне здесь не хватает?