6

Я пытаюсь настроить Единый вход для 2 веб-сайтов, которые находятся в том же доменеОдиночный вход с аутентификацией форм

например.

http://mydomain (сайт верхнего уровня, который содержит страницу входа форм-аутентификацию)

http://mydomain/admin (отдельно разработанного веб-сайт, проживающий в виртуальных приложениях в родительском сайте)

Прочитал несколько статей на Single Sign On например

http://www.codeproject.com/KB/aspnet/SingleSignon.aspx

http://msdn.microsoft.com/en-us/library/dd577079.aspx

И они, кажется, предполагают, что это просто случай с той же MachineKey секции в каждом web.config так, что шифрование и дешифрование печенья является одинаковым для каждого приложения

Я установил это и никогда не получаю запрос на учетные данные на суб-сайте (виртуальное приложение)

Я всегда получаю запрос на родительском сайте.

В дополнение к наличию такой же MachineKey я также пытался добавить те же <authentication> и <authorisation> элементы

Любая идея, что я мог бы не быть?

+0

Любой вопрос с этим вопросом? – AlfeG

ответ

1

я использовал <clear/> на участке HttpModules, так как есть пункты родителя, которые не существуют в бен директории для ребенка (/ администратора)

При этом (с использованием <clear/>, что есть) у меня было неосторожно очистил модуль FormsAuthentication, указанный в web.config в C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG

так мне нужно повторно добавить тех, которые явно ребенку (/ администратора) конфигурации

+0

Я пытаюсь сделать что-то подобное. Можем ли мы иметь формы AuthN и SSO для одного и того же веб-сайта? Возможно, есть две разные стартовые страницы, но один web.config? Любые комментарии, предложения? – VoodooChild

0

Попробуйте настроить раздел httpCookies в файле web.config обоих приложений, чтобы использовать тот же домен. Таким образом, когда вы входите в одно приложение, cookie FormsAuthentication, который вы получите, будет виден другому приложению.

+0

Благодарим за предложение - к сожалению, это не имеет никакого значения. – ChrisCa

1

Ваш раздел форм в файле web.config должен быть таким же.

Quote from - Forms Authentication Across Applications

Для настройки проверки подлинности форм в различных приложениях, вы установили атрибуты форм и разделы MachineKey файла Web.config в одних и те же значения для всех приложений, которые участвуют в проверке подлинности общей формы.

В следующем примере показан раздел проверки подлинности файла Web.config . Если не указано иное, значение , защита, путь, валидацияKey, , валидация, decryptionKey и . Атрибуты дешифрования должны быть одинаковыми во всех приложениях. Аналогично, значения шифрования и и схема шифрования и схема проверки , используемые для аутентификации билетов (данные cookie) должны быть одинаковыми. Если настройки не совпадают, аутентификация билетов не может быть предоставлена.

+0

спасибо - как я уже говорил ранее, я пробовал с теми же разделами авторизации и авторизации Я не заметил, например «http: //mydomain/login.aspx» Я получаю запрос на учетные данные Windows (а не на страницу ввода форм, которую я бы ожидал) – ChrisCa

+0

Просто хочу убедиться, что я прав. Если вы входите в Mydomain, вы должны пройти аутентификацию для Mydomain/admin, и это работает нормально. И вы хотите, чтобы он работал наоборот? т. е. когда вы входите в админ для аутентификации для Mydomain? Вы ознакомились с кодом аутентификации в MyDomain? Это как-то отличается от/admin? –

+0

Нет. Когда я нахожусь в mydomain, который содержит страницу входа, я хотел бы пройти аутентификацию для mydomain, а также mydomain/admin. Когда я посещаю http: // mydomain, я перенаправляюсь на страницу входа в систему - вот что я хочу. Когда я посещаю http: // mydomain/admin, я не перенаправляюсь - у меня есть полный доступ к сайту/admin. т.е. он не подбирает аутентификацию от родителя – ChrisCa

0

В файле web.config должны быть одинаковые элементы аутентификации. В элементе содержащихся форм убедитесь, что вы даете каждому приложению одинаковое значение для атрибута name. Для атрибута loginUrl я использую относительный путь и использую одну и ту же страницу входа для всех приложений (например,loginUrl = "/ MainApp/login.aspx").

Кроме того, вы создаете билет для аутентификации вручную?

+0

да, попробовали с локальным путем (login.aspx) в родительском и полный путь (mydomain/login.aspx) в/admin, но я никогда не перенаправляюсь на страница входа в систему/admin. Если я положу полный путь в обоих, то я получаю пропущенное приглашение на вход в Windows (не вход в систему). попробовали все настройки безопасности в IIS, но не могут перенаправляться на страницу входа на дочерний сайт. – ChrisCa

+0

Вы пытаетесь отобразить страницу входа в систему, даже когда пользователь уже зашел на сайт, не принадлежащий администратору? Кроме того, помещаете ли вы раздел ограниченных пользователей в элемент авторизации? –