Как создать мультитенантное приложение с помощью ASP.Net MVC?
Этот вопрос отличается от других, потому что все вопросы, которые я видел до сих пор, говорят о базе данных. Я понимаю сторону базы данных мультитенасыщенности, но я не уверен на 100% в том, как сделать передний конец.
Я работаю над дизайном продукта, который в основном будет размещенным сервисом для клиентов. Что касается мультитенатности, вы можете подумать о размещенной учетной записи FogBugz. Клиент регистрируется, получает свой собственный поддомен, а затем переходит в customersubdomain.thenormalurl.com и войдите в свою маленькую часть приложения.
Когда клиент зарегистрируется, нам нужно будет настроить запись DNS для субдомена, но с точки зрения приложения, как мы можем "охватить" приложение для этого клиента? Он просто должен посмотреть на url, на который был сделан запрос, или есть какой-то другой способ? Мне это кажется слишком простым, но, возможно, я просто пытаюсь усложнить то, что должно быть простым.
Как это обычно делается в ASP.Net мир?
2 ответа:
Да, просто посмотрите на поддомен. Если ваши пользователи входят в систему, то вы можете игнорировать поддомен и выяснить, кто они такие по своим учетным данным. После того, как вы выясните, кто они, то это просто вопрос получения правильных данных и не показывать неправильные данные. И вот тут-то и возникают все эти вопросы БД. Вы делаете это "определение области", либо используя отдельные DBs, либо помечая все свои записи ключами к клиенту. Поэтому ваше приложение должно реализовать это.
У Люка Сэмпсона есть несколько методов и пример кода для мультитенантных приложений, использующих поддомены под ASP.NET MVC здесь:
Http://lukesampson.com/post/303245177/subdomains-for-a-single-application-with-asp-net-mvc