создание поддоменов и совместное использование аутентификации на 2 разных проектах / решениях / приложениях - PullRequest
2 голосов
/ 23 сентября 2011

Я пытаюсь создать сайт с поддоменами в asp.net mvc. Но я не уверен, как это сделать. При настройке этого нового решения в Visual Studio лучше всего иметь разные проекты для каждого субдомена или один проект? Очевидно, что в этом есть некоторые непосредственные преимущества, такие как публикация обновлений в одном поддомене, не затрагивая другие. Вот спецификация:

1) У меня много приложений, у каждого есть свой собственный поддомен, например, App1, App2, App3. Пользователь войдет в систему через Основной домен со страницей входа, и эта аутентификация будет передана приложениям.

2) Мне нужен домен для аутентификации пользователя и передачи аутентификации на поддомен. Субдомен разрешит доступ только аутентифицированным пользователям. ASP.NET позволяет передавать аутентификацию субдоменам. Мне нужно знать, как настроить проекты так, чтобы субдоминиан знал, что аутентификация проходит таким образом.

3) Я решил пойти по маршруту субдомена.

http://App1.domain.com/ http://App12.domain.com/

4) Я также думаю о коде многократного использования. Есть ли способ поделиться главной страницей, пользовательскими контролями и т. Д. По трем различным поддоменам?

Ответы [ 2 ]

2 голосов
/ 23 сентября 2011

Отдельные веб-приложения и в файле web.config каждого свойства domain задайте для домена верхнего уровня:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" domain="domain.com" />
</authentication>

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

1 голос
/ 23 сентября 2011

Думал о похожей ситуации несколько дней назад.Я нашел два варианта выполнения «регистрации субдомена на лету»

  1. Регистрация субдомена не требует времени при регистрации корневого домена!
  2. Перепишите URL

В случае 1 я бы перенаправил * .mydomain.com на веб-сервер (IIS) в этом случае и использовал бы API администрирования IIS для перенаправления myuser.mydomain.com на физический путь, такой как www.mydomain.com/myuser/

В случае 2 я бы просто переписал www.mydomain.com/myuser/* на myuser.mydomain.com/*

Аутентификация не должна быть проблемой, я бы использовалФильтр или что-то в этом роде.

...