Привет Разработчики / Архитекторы,
Это больше архитектурный вопрос:
У меня есть веб-приложение. Приложение использует ASP Membership API (от аутентификации) для управления пользователями / ролями.
Мы размещаем отдельное приложение для каждого из наших клиентов. Таким образом, в основном каждый клиент имеет имя приложения в базе данных ASP Membership. Затем этот клиент создает свои роли / пользователей в соответствии со своими потребностями.
Причина, по которой у нас один и тот же веб-сайт, размещенный на IIS для каждого клиента отдельно в виртуальном каталоге с именем клиента, заключается в том, что у всех клиентов есть свое отдельное имя приложения (с точки зрения членства в ASP), а базовая база данных является отдельной для каждому клиенту.
поэтому у каждого клиента есть отдельный URL-адрес, например: http://mysite/client1., а затем client1 имеет своих собственных пользователей, роли. Базовая база данных приложения, используемая приложением, является клиентом.
Веб-приложение и схема базы данных одинаковы для всех клиентов.
Я не могу принять какое-либо решение относительно части базы данных. Поэтому я не собираюсь это обсуждать.
Но я хочу изменить подход к размещению отдельного приложения для каждого клиента. Я хочу разместить одно приложение для всех клиентов:
это вызывает некоторые вопросы:
Q1. как бы мне создать эти URL: http://mysite/client1, http://mysite/client2 (так как я не могу разместить имена всех клиентов на главной странице входа в систему, а затем, как только пользователь выбирает имя клиента, предоставляет имя пользователя / пароль .. .. я не могу этого сделать из-за характера бизнеса) *
Q2. Я не могу создать одно приложение (на уровне IIS и на уровне членства ASP), а затем разделить клиентов по ролям, потому что все клиенты имеют роли внутри себя, и, кроме того, 2 или более клиентов могут иметь пользователя с одинаковым именем; поэтому userX для client1 и userX для client2. Эти пользователи разные, но у них одинаковые имена.
* Одним из решений Q1 может быть то, что я создаю новое приложение пересылки, которое размещается для каждого клиента отдельно в IIS в виртуальном каталоге клиента. И когда клиент открывает свой URL (например, http://mysiteforworder/client1), они перенаправляются на (http://mysite/Default.apsx?app=hjuk98jkio8), где (hjuk98jkio8) - зашифрованное имя клиента, которое мы используем внутри.
это разрешит Q1, но не Q2.
дайте мне знать, какие у меня есть варианты ...