как создать единое веб-приложение в качестве поддомена для многих компаний

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

Вопрос

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

www.test.com/abcd/productlist.aspx

компания efgh также может войти в систему со своим собственным URL-адресом и просмотреть список своей продукции.

www.test.com/efgh/productlist.aspx

кто-нибудь может мне помочь, как я могу реализовать это на своем сайте с наилучшими подходами

Я думаю о подходе, который будет использовать глобальный файл.ascx для различения компаний, я напишу код для извлечения названия компании из URL в global.ascx для каждого действительного запроса и на всех страницах я буду размещать this.form.action = request.rawurl.

есть ли какие-то другие подходы?если кто-нибудь реализовал этот тип функции, пожалуйста, дайте мне знать о ваших подходах.

Спасибо

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

Решение 4

Я не нашел никакого решения, которое полностью соответствовало бы моим требованиям, я написал для этого свою собственную логику, которая использует BeginRequest Global.ascx, страницу входа в систему, базовую страницу и общие классы, созданные для Response.Redirect.Я больше не использую напрямую Asp.Net 's Response.Redirect, Пути и переменные сеанса, вместо этого я создал над ними оболочки, чтобы добавить CompanyName из URL в Пути.

Дайте мне знать, если вам понадобится дополнительная информация о моем коде

Другие ответы приветствуются.

Спасибо

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

Если вы работаете с ASP.NET 3.5 SP1, тогда вам следует изучить новый механизм маршрутизации это было введено из проекта MVC.Это позволит получить чистое решение.

Мы используем DLL из http://urlrewriting.net и правила, аналогичные следующим:

<urlrewritingnet xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
  <rewrites>
    <add name="Customer" virtualUrl="^~/([^/]+)/([^/]+).aspx" destinationUrl="~/$2.aspx?customer=$1"/>
    <add name="CustomerStart" virtualUrl="^~/([^/]+)/$" destinationUrl="~/Default.aspx?customer=$1"/>
    <add name="CustomerStartAddSlash" virtualUrl="^http\://([^/]+)/([a-zA-Z0-9_-]+)$"
                                      destinationUrl="http://www.example.com/$2/"
                                      redirect="Domain" redirectMode="Permanent" />
  </rewrites>
</urlrewritingnet>

Эти правила выполняют следующие сопоставления.Это переписывает, таким образом , пользователь всегда видит левый URL-адрес в своем браузере:

Rule 1: http://www.example.com/customerA/something.aspx => http://www.example.com/something.aspx?customer=customerA
Rule 2: http://www.example.com/customerA/ => http://www.example.com/Default.aspx?customer=customerA

Третье правило - это перенаправление, а не перезапись, т. е. оно гарантирует добавление завершающей косой черты в браузере пользователя (гарантирует, что относительные пути работают правильно):

Rule 3: http://www.example.com/customerA => http://www.example.com/customerA/

Взгляните на эти вопросы.
У вашего подхода есть название.Это называется Многоквартирность.

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