Как оставаться в системе при переключении URL-адресов (одно и то же веб-приложение для обоих URL-адресов)

К сайту ASP.NET MVC 3, который я разрабатываю, можно получить доступ с нескольких разных URL-адресов, каждый из которых подключает его к разным базам данных на серверной части (URL-адрес 1:1 к БД). Мне нужно разрешить пользователю переключаться между URL-адресами без необходимости входа в каждый URL-адрес. В настоящее время я использую Forms Auth с почти стандартной схемой MembershipProvider/RoleProvder.

Каковы мои варианты разрешения изменения URL-адреса и «оставаться в системе»? Я предполагаю, что мне нужно реализовать какую-то федеративную безопасность. Что ты порекомендуешь? Обратите внимание, что мне нужно будет контролировать все аспекты безопасности (например, я не могу использовать идентификатор Google).

При необходимости я могу добавить в смесь веб-службу WCF.

Я не хочу интегрироваться с AD, если это вообще возможно, поскольку мы не хотим, чтобы все веб-пользователи были пользователями домена.

EDIT: база данных аутентификации в настоящее время одинакова для всех URL-адресов.

Заранее спасибо.


person Ed Sinek    schedule 02.08.2011    source источник
comment
Не могли бы вы уточнить: когда вы говорите разные URL-адреса, вы имеете в виду разные домены?   -  person Troy Hunt    schedule 03.08.2011
comment
да, разные домены. например cpl.domainone.com и cpl.domaintwo.com   -  person Ed Sinek    schedule 03.08.2011


Ответы (1)


На самом деле, я почти уверен, что вам не повезло. Поставщик членства сохраняет сеанс аутентификации с помощью файлов cookie, которые, конечно же, привязаны к домену. Если не считать реализации поведения, которое позволило бы вам передавать и проверять состояние аутентификации через URL-адрес, я не вижу никакого способа обойти это.

person Troy Hunt    schedule 04.08.2011
comment
Я готов отказаться от схемы провайдера членства и файлов cookie сеанса в пользу другой альтернативы, если это поможет. Любые идеи? - person Ed Sinek; 04.08.2011
comment
Вы можете отказаться от файлов cookie сеанса и использовать сохранение сеанса без файлов cookie (вместо этого использует URL-адрес), но я не уверен, что это будет поддерживать состояние аутентификации между доменами, и это НЕ очень хорошо с точки зрения безопасности (см. здесь: troyhunt.com/2010/07/) . Я бы не стал отказываться от поставщика членства просто потому, что он настолько полнофункциональный, хорошо зарекомендовавший себя и в любом случае расширяемый (вы можете переопределить все нативное поведение). Не могли бы вы обновить свой вопрос, чтобы больше объяснить, почему вы используете несколько доменов? Тут может быть и другой ракурс. - person Troy Hunt; 05.08.2011