Я пытаюсь найти решение, в котором одно веб-приложение обслуживает несколько доменов, для каждого домена я хотел бы настроить своих поставщиков, используя приложение идентификатор и секрет для внешнего поставщика, я хотел бы домен куков и информацию провайдеров для чтения из базы данных на основе текущего доменного имени, так, например:Поставщики Owin в веб-приложении с несколькими арендаторами, где у каждого домена есть свои собственные провайдеры
switch (currentDomainName)
{
case "web1.com": load cookie domain and providers information for web1.com ...
case "web2.com": load cookie domain and providers information for web2.com ...
...
}
Я столкнулся две основные проблемы:
- У меня нет HttpContext, доступного в Owin Startup ConfigureAuth(), и я не уверен, как определить, какое доменное имя используется на раннем этапе запуска ...
- Я понимаю, что запуск запускается только один раз для каждого веб-приложения, поэтому для Например, после того, как web1.com будет доступен в первый раз, ConfigureAuth() не будет снова запущен для web2.com, если он уже установлен web1.com
Мне интересно, могу ли я переопределить некоторые методы Owin и сделать это не статично ... или, может быть, найти способ реализовать это по-другому (но я все еще люблю использовать Owin)
Где я могу т?
провайдеры не построены для этого. Сколько доменов вы рассматриваете? Если это всего лишь несколько, вы можете разветвить конвейер для каждого домена, используя что-то вроде MapWhen, и предоставить для них различное промежуточное ПО. Трюк снова объединяет трубопровод. – Tratcher
Около 10 доменов, но, возможно, больше в будущем, знаете ли вы о каком-либо другом промежуточном программном обеспечении, в которое я должен заглянуть? – Yovav
Нет, это еще не так много развитой области. В определенный момент это слишком сложно для управления внутри вашего приложения, и вы обрабатываете его до службы, такой как Azure AAC B2C https://azure.microsoft.com/en-us/services/active-directory-b2c/ – Tratcher