Преобразование сайта ASP.NET с одной базой данных в мультитенантный — дилемма членства и ролей

StackOverflow https://stackoverflow.com/questions/483414

Вопрос

Я занимаюсь преобразованием одного веб-сайта базы данных SQL (ASP.NET/VB.NET) в мультитенантное приложение, где каждый клиент имеет свою собственную базу данных.

На старом сайте все роли, имена входа и поставщики ASP указывали на одну базу данных.

Теперь у нас есть несколько баз данных, и мне интересно, какую архитектуру/методы лучше всего использовать.Существует одна база данных, которая настраивает клиентов, например название компании, различные параметры (которые обычно находятся в файле web.config) и строку подключения к их базе данных клиентов.

Должны ли мы хранить все данные о членстве и ролях в единой базе данных, которая настраивает арендаторов, или у нас есть членство и роли в каждой отдельной базе данных арендаторов?Вариант 2 кажется сложным, поскольку я думаю, что ASP.NET нравится только один набор RoleProviders, определенный в файле web.config.

Кто-нибудь пробовал это раньше или получил какие-либо рекомендации?

Это было полезно?

Решение

Если вы используете модель членства ASP.Net со встроенными поставщиками, то поместить их в одну БД проще всего, как вы указали.

Один из вариантов (я его не пробовал) — определить в файле web.config поставщика для каждого арендатора.Это позволит каждому арендатору иметь собственную базу данных членства и позволит избежать конфликтов имен пользователей между арендаторами (если это является обязательным).

Другие советы

У вас должна быть возможность настроить строку подключения к базе данных членства ASP.NET во время выполнения. Эта тема имеет несколько вариантов, включая настраиваемого поставщика членства или изменение значения на ранних этапах жизненного цикла запроса через Global.asax.cs.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top