Если вы используете Active Directory (при условии, что это то, что вы называете доменами), вы можете просто настроить несколько разделов ActiveDirectoryMembershipProvider
и использовать шаблоны элементов управления asp:Login
, добавить раскрывающийся список для доменов, для которых вы хотите пройти аутентификацию и в событии OnAuthenticate
элемента управления входом установите выбранного поставщика членства AD.
Для разных поставщиков, таких как поставщик членства в SQL Server, я не уверен, что понимаю, в чем проблема. Вы можете уточнить?
Я собираюсь сделать предположение здесь после того, как попытался прочитать ваш вопрос несколько раз снова. Если с «несколькими доменами» вы имеете в виду, что у вас есть несколько веб-сайтов (несколько полных доменных имен), и вы хотите использовать одно и то же хранилище данных SQL Server для аутентификации пользователей и запуска одного и того же веб-сайта, решением будет указать соответствующий DNS Запись на IP-адрес исходного хост-сервера.
Любой достойный регистратор домена должен позволять вам изменять запись DNS.
Однако , Forms Auth создает cookie, и вы не сможете прочитать cookie из домена, отличного от того, на котором вы находитесь, из-за очевидных проблем безопасности, поэтому в этом случае вы застряли .
Единственная возможность, которую я вижу, состоит в том, что вы передаете некоторую зашифрованную идентификацию в строке запроса, но это очень, очень хитроумно, так как вы хотели бы убедиться, что для него существует минимальный срок действия, так как он открывает правая банка глистов (дыр в безопасности). Вероятно, не рекомендуется.
Крики, это долгий способ сказать: «Нет, ты не можешь - надежно».
Если речь идет о суб доменах, а не о разных доменах верхнего уровня, то вы действительно можете это сделать, см. этот пост .