как создать единое веб-приложение в качестве поддомена для многих компаний
-
21-09-2019 - |
Вопрос
я работаю над проектом, на который вы можете подписаться под названием вашей компании, и вы можете использовать все функции сайта конкретно для вашей компании.например, компания 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/
Взгляните на эти вопросы.
У вашего подхода есть название.Это называется Многоквартирность.