Я работаю над проектом, который вы можете подписаться с именем своей компании, и вы можете использовать все функции сайта специально для своей компании. например, компания abcd может получить свой собственный URL-адрес с нашего веб-сайта, например
www.test.com/abcd/productlist.aspx
Компания efgh также может войти в систему со своим собственным URL-адресом и посмотреть его список продуктов.
www.test.com/efgh/productlist.aspx
может ли кто-нибудь помочь мне, как я могу реализовать это с моим сайтом с лучшими подходами
Я думаю о подходе, который будет использовать файл Global.ascx, чтобы отличать компании, я напишу код, чтобы извлечь название компании из url в global.ascx для каждого действительного запроса, и на всех страницах я поставлю this.form.action = request.rawurl.
Есть ли другие подходы? если кто-либо выполнил этот тип функции, пожалуйста, дайте мне знать ваши подходы.
Спасибо
Я не нашел решения, полностью удовлетворяющего моим требованиям, я написал для себя свою собственную логику, которая использует Global.ascx BeginRequest, страницу входа, базовую страницу и общие классы, созданные для Response.Redirect
. Я больше не напрямую использую Asp.Net Response.Redirect
, Paths и Session variables, вместо этого я создал обертку над ними, чтобы добавить companyName из url в Paths.
Сообщите мне, если вам нужна дополнительная информация о моем коде.
Другие ответы приветствуются.
Спасибо
Мы используем 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/
Если вы работаете с ASP.NET 3.5 SP1, вам следует изучить новый механизм маршрутизации, который был введен в проект MVC, Это сделает чистое решение.
Посмотрите эти questions.
У вашего подхода есть имя. Он назывался Multitenancy.