Как создать мультитенантное приложение с помощью ASP.Net MVC?


Этот вопрос отличается от других, потому что все вопросы, которые я видел до сих пор, говорят о базе данных. Я понимаю сторону базы данных мультитенасыщенности, но я не уверен на 100% в том, как сделать передний конец.

Я работаю над дизайном продукта, который в основном будет размещенным сервисом для клиентов. Что касается мультитенатности, вы можете подумать о размещенной учетной записи FogBugz. Клиент регистрируется, получает свой собственный поддомен, а затем переходит в customersubdomain.thenormalurl.com и войдите в свою маленькую часть приложения.

Когда клиент зарегистрируется, нам нужно будет настроить запись DNS для субдомена, но с точки зрения приложения, как мы можем "охватить" приложение для этого клиента? Он просто должен посмотреть на url, на который был сделан запрос, или есть какой-то другой способ? Мне это кажется слишком простым, но, возможно, я просто пытаюсь усложнить то, что должно быть простым.

Как это обычно делается в ASP.Net мир?

2 4

2 ответа:

Да, просто посмотрите на поддомен. Если ваши пользователи входят в систему, то вы можете игнорировать поддомен и выяснить, кто они такие по своим учетным данным. После того, как вы выясните, кто они, то это просто вопрос получения правильных данных и не показывать неправильные данные. И вот тут-то и возникают все эти вопросы БД. Вы делаете это "определение области", либо используя отдельные DBs, либо помечая все свои записи ключами к клиенту. Поэтому ваше приложение должно реализовать это.

У Люка Сэмпсона есть несколько методов и пример кода для мультитенантных приложений, использующих поддомены под ASP.NET MVC здесь:

Http://lukesampson.com/post/303245177/subdomains-for-a-single-application-with-asp-net-mvc