Много аренда в ASP MVC

Еще одна много аренда отправляет, я боюсь. Я просто наклоняюсь, находят хорошее решение моей проблемы, я прочитал все большие сообщения на много аренде для ASP MVC, но мне все еще нужен некоторый хороший совет.

Я собираюсь создать корпоративное присутствие для одного из моих клиентов. Их структура компании похожа на основную компанию (напр. Acme Group Ltd.), которые владеют несколькими другими компаниями (напр. Acme Holding Ltd, Acme Technology Ltd., Acme Maritime Ltd., и т.д.).

Я хочу использовать один ASP проект MVC служить контейнером для всех сайтов, чтобы сократить необходимый код и сохранить его DRY. Я также хочу, чтобы все сайты использовали то же Членство DB.

Моя первая мысль состояла в том, чтобы сделать одну папку контроллера для каждой дочерней компании и один корневой контроллер для корпоративной основной страницы. Затем это было бы похоже:

acme.com ("Корпоративная основная страница")
acme.com/Holding ("Acme Holding Ltd".)
acme.com/Maritme ("Acme Maritme Ltd".)
...

Эта структура меня устраивает, но я также хочу, чтобы пользователи веб-сайта получили доступ к каждому подсайту на основе своих собственных отдельных доменов, исключая:

holding.acme.com (Это должно прямо к "acme.com/Holding").
...

Это, конечно, также работало бы, но вещь состоит в том, что я не хочу, чтобы URL изменился, когда пользователь направлен к "acme.com/Holding". Я хотел бы, чтобы это все еще было "holding.acme.com", "holding.acme.com/About", "holding.acme.com/Contact", и т.д. вместо "acme.com/Holding/Contact", и т.д.

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

12
задан Martin 25 October 2011 в 13:24
поделиться

2 ответа

Держите его простым, используйте IIS модуль Rewrite URL . Вы можете настроить его на перезапись acme-holding.com / * URL-адреса для ACME.com/holding / * :

<rewrite>
    <rules>
        <rule name="Forward to acme.com">
            <match url=".*" />
            <action type="Rewrite" url="http://acme.com/Holding/{R:0}" />
        </rule>
    </rules>
</rewrite>
6
ответ дан 2 December 2019 в 23:07
поделиться
  • (void) textEdityDidBeginEditing: (TTTextEditor *) textEditor { И

    • (void) textEdityDidEndEditing: (TTTextEditor *) textEditor { может быть то, что вы ищете. Приятного отдыха!
-121--4196252-

Вы не можете обнаружить его на стороне сервера. Действительно, сценарий может быть выключен при первом доступе к странице, а затем параметры настройки браузера будут изменены и перемещены без нового HTTP-запроса. Не говоря уже о всевозможных проблемах кэширования и местах, где сценарии могут быть технически «включены», но не работать из-за конфликтов, ошибок или инструментов «безопасности», мешающих пути.

Таким образом, на стороне клиента необходимо принимать все решения о содержимом со сценарием/без сценария. В эти дни предпочтительным методом будет, как правило, «прогрессивное расширение»: включить базовую HTML-версию на странице, то есть JavaScript заменить/обновить его, где он может:

<div id="isitjs">
    <p>Backup content for no JavaScript</p>
</div>
<script type="text/javascript">
    document.getElementById('isitjs').innerHTML= '<p>Sparkly script-enhanced content!<\/p>';
    // or DOM methods, as you prefer
</script>
-121--3879640-

Я написал блог на multi-lenancy, который охватывает именно то, что вы пытаетесь здесь.:

http://jasonjano.wordpress.com/2010/02/22/multi-presentation-websites-for-c/

Удачи!

1
ответ дан 2 December 2019 в 23:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: