Несколько местоположений входа в систему для онлайн-приложения - PullRequest
0 голосов
/ 17 июня 2010

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

Страница входа в систему является статической. То есть, если у нас есть пользователь, которому требуется отдельный вход, мы создадим для него отдельную целевую страницу, скажем, на user1.application.com, которая будет иметь синий фон. Второму пользователю будет передан URL-адрес user2.application.com, который будет иметь зеленый фон. Приложению не нужно динамически изменять внешний вид страницы входа в систему, которая будет статической и управляться на более высоком уровне.

Какой самый безопасный способ сделать это?

Имеет ли смысл иметь копию приложения для каждого пользователя и поддерживать централизацию базы данных?

Предполагаемое количество пользователей не очень велико, вероятно, около 20-80.

Спасибо,

1 Ответ

1 голос
/ 15 июля 2010

Я могу дать вам инструкции, как это сделать, используя Microsoft IIS и ASP.NET.Другие серверы и языки программирования по-прежнему применяются, но особенности будут немного другими.

Вам потребуется доступ к настройкам DNS.Создайте запись DNS для * .applicaiton.com.Мы делаем это как запись CNAME, которая указывает на нашу запись домена www, которая зарегистрирована как запись A, связанная с IP-адресом.

Вариант 1. В IIS 6 создайте веб-сайт и измените узелЗаголовки (Свойства веб-сайта, вкладка Веб-сайт, кнопка «Дополнительно ...» в разделе «Идентификация веб-сайта»).Добавьте пустой заголовок хоста.Это приведет к тому, что веб-сайт IIS будет отвечать на все запросы для всех доменов, связанных с IP-адресом, который он прослушивает.

Затем создайте страницу по умолчанию, и в приведенном ниже коде у вас будет логика, которая смотрит наRequest.UserHostName каждого запроса.Он должен возвращать «user1.application.com» или «user2.application.com» или, возможно, «www.application.com».Затем вам нужно будет проанализировать эту строку и выполнить всю грязную работу, чтобы загрузить соответствующую страницу.

Хм, ну, вот как вы это сделаете динамически, с одним веб-сайтом.Перечитывая свой вопрос, вы говорите о «статических» страницах входа.Для этого у вас есть два варианта.Вы можете создать статические страницы входа в систему и сделать так, чтобы ваша динамическая страница считывала эти файлы и отправляла их в качестве ответа, или второй вариант был бы ...

Вариант 2. В IIS создайте новый веб-сайт для каждогопользователь.Измените заголовки хостов, как описано выше, чтобы у каждого веб-сайта был только один заголовок хоста, равный логину пользователя.Не иметь веб-сайта с пустым заголовком хоста.Вам придется создать веб-сайт и вручную добавить заголовок узла для каждого нового пользователя.

Ни один из вариантов не может показаться очень элегантным, но вариант 1 работает довольно хорошо.Мы используем его аналогичным образом для размещения нескольких «скинов» нашего приложения.

...