Существует хорошая статья здесь о константе в C++. Это - довольно прямое мнение, но надежда это помогает некоторым.
Как сопоставить имя домена с идентификатором пользователя при поступлении запроса?
Очевидно, вам придется где-то хранить эту информацию, скорее всего, в базе данных.
Добавить таблицу базы данных домены
со столбцами:
Добавьте уникальный ключ для (name, active), чтобы гарантировать, что имя домена отображается только один раз.
Когда клиент пытается добавить домен, добавьте строку с активным = NULL и задайте запрос на случайную строку.
Покажите случайную строку для клиента и попросите его разместить веб-страницу с ней на сайте или создать фиктивная DNS-запись с ней для подтверждения права собственности на домен (так это делают Google Apps).
Вы можете подтвердить право собственности, отправив электронное письмо контактному лицу по административным вопросам или каким-либо другим способом.
Когда клиент говорит, что он сделал то, что вы ему проинструктировали на шаге № 2, подтвердите это и установите active = 1, вызов = NULL.
Если домен ранее был активен для какого-то другого клиента, удалите эти записи или установите active = 0.
Попросите клиента добавить запись CNAME для своего домена и переслать ее в ваш домен, например hosted.myservice.com
(Google использует ghs.google.com
для Google Apps).
При поступлении запроса выполните
SELECT customerId FROM domains WHERE name =: requestDomain И активный = 1
Если домен ранее был активен для какого-то другого клиента, удалите эти записи или установите active = 0.
Попросите клиента добавить запись CNAME для своего домена и перенаправить ее в ваш домен, например размещенный. myservice.com
(Google использует ghs.google.com
для Google Apps).
При поступлении запроса выполните
SELECT customerId FROM domains WHERE name =: requestDomain AND active = 1
Если домен ранее был активен для какого-то другого клиента, удалите эти записи или установите active = 0.
Попросите клиента добавить запись CNAME для своего домена и перенаправить ее в ваш домен, например размещенный. myservice.com
(Google использует ghs.google.com
для Google Apps).
При поступлении запроса выполните
SELECT customerId FROM domains WHERE name =: requestDomain AND active = 1
Лучшим способом может быть автоматическое предложение вашим клиентам домена в формате
, в дополнение к пользовательским доменам. Это дает вам два преимущества:
Клиенты, которые не хотят использовать свой собственный домен, все равно могут настроить свою страницу входа, например, с логотипом компании.
Для пользовательских доменов вы можете попросить своего клиента переслать их на
вместо общего hosted.myservice.com
.
Это позволяет горизонтально разделить клиентов между несколькими серверами без необходимости просить клиентов изменить что-нибудь с их стороны. Например, вы можете предоставить клиентам возможность выбрать, будет ли их учетная запись размещена в ЕС или США. Когда они его меняют, просто перенесите их данные и обновите
. Их личный домен будет работать автоматически.
Для этого вам нужно будет настроить запись DNS с подстановочными знаками для *. Myservice.com
(если вам также не нужна последняя функция, и в этом случае вы придется вести отдельные записи).
Одно из решений, которое вы можете использовать, - это настроить WildCard DNS Record для вашего приложения, и пусть само приложение проверяет RequestURI, чтобы узнать, на какое имя хоста приходят пользователи. on.
Я знаю, что это очень расплывчатый ответ, но похоже, что настроена запись WildCard, с единственной функцией проверки имени хоста - лучший выбор. Таким образом, вам не нужно настраивать запись DNS каждый раз, когда клиент регистрируется, и у вас будет больше времени для себя, чтобы заняться другими делами ... например, добавлением новых функций в ваше приложение!
Я не совсем уверен, действительно ли я понимаю, что вы хотите сделать, но я пытаюсь дать вам возможное решение (по крайней мере, для Java-части вашей проблемы).
Одно Можно было бы настроить сервер приложений таким образом, чтобы каждый запрос обрабатывался одним-единственным сервлетом (web.xml). Этот сервлет может узнать URL-адрес запроса ( HttpServletRequest.getRequestURI ) и извлечь имя пользователя. Тогда вы узнаете о пользователе и сможете использовать эту информацию для всего, что захотите.
Имейте в виду, что в то, что вы хотели бы сделать, задействовано множество DNS-вещей! (По крайней мере, насколько я понимаю.)