В нашем обсуждении в комментариях используется правило перезаписи URL, которое я использовал в прошлом, чтобы пользователи могли использовать пользовательские домены. Вам нужно будет проверить, можно ли это использовать с сертификатами SSL (я думаю, это может быть сложно, поскольку, по крайней мере, вам нужно будет установить SSL-сертификаты для этих доменов).
Ключом с таким подходом является то, что вам нужно иметь что-то в вашем хранилище данных, которое знает, что имя домена связано с пользователем. Итак, при окончательном переадресации на Page.aspx?d={R:1}
вы можете найти требуемый домен и затем перенаправить на страницу определенного пользователя. Например, если вы переписываете Page.aspx?d=www.example.com
, то, предположительно, где-то в вашем хранилище данных пользователь «зарегистрировал» это доменное имя в своей учетной записи и проверил его, возможно, посредством проверки по электронной почте, а затем вы можете по праву загрузить свой контент.
Регулярное выражение, которое у меня было в моем коде, не было точным (и в настоящее время я не использую эту функцию на своем сайте), поэтому я не представил его ниже, но его нужно установить достаточно просто. У вас есть может do имеет правило, которое определяет ваше основное доменное имя и ничего не делает и прекращает обработку, после чего у вас есть другое правило для обнаружения всех других доменных имен, для которых вы можете переписать. Надеюсь, это имеет смысл. Если нет, сообщите мне, и я могу уточнить.
<rewrite>
<rule name="UserDomain" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="*** regex to detect domain names ***" />
</conditions>
<action type="Rewrite" url="/Page.aspx?d={R:1}" />
</rule>
</rewrite>
У меня нет ресурса, но я скажу, что это возможно, используя только переписывание URL; вам нужно будет размещаться на выделенном IP-адресе. В настоящее время я использую эту же методику на сайте, чтобы пользователи могли иметь username.example.com (который просто переписывает example.com/site/?u=username). Переписывание URL-адресов определенно то, что вам нужно здесь, однако, чтобы избежать необходимости связываться с настройками сервера и создавать поддомены «на лету». – trnelson
Что делать, если некоторое время по дороге они хотят использовать свой собственный домен вместо user.example.com и SSL? Я предполагаю, что он должен будет запускаться на своем собственном веб-сайте Azure, правильно? – Stephen
Возможно использование настраиваемого домена. Мне придется выкопать какой-то старый код, но я определенно это сделал. Не совсем уверен в SSL, хотя. – trnelson