Что я делаю, так это использую базу данных для обмена сессиями / идентификаторами пользователей:
- В веб-приложении A у меня есть ссылка на веб-приложение B.
- Ссылкаимеет уникальный идентификатор входа (например, идентификатор сеанса) веб-приложения A в качестве параметра.
Тогда «рабочий процесс» выглядит примерно так:
- Когдапользователь щелкает ссылку (или просто в
Page_Load
), идентификатор сеанса сохраняется в БД. - Открывается веб-приложение B, передается идентификатор сеанса веб-приложения A.
- Веб-приложение B ищет в базе данных и ищет идентификатор сеанса веб-приложения A.
- Когда оно найдено, некоторые проверки безопасности выполняются (например, возраст записи).
- Если всевсе в порядке, пользователь вошел в веб-приложение B.
Таблица имеет вид структуры, подобной этой:
+--------------------------------------------------------+
| ID | SessionID | UserID | DateWhenThisRecordWasCreated |
+--------------------------------------------------------+
С этой конфигурацией вы можете передавать входы между различнымисвязанные приложения, они только должны получить доступ к той же базе данных.(Если вы не можете совместно использовать базу данных, можно подумать, что веб-приложение A предоставляет веб-службу SOAP, к которой веб-приложение B может запрашивать взамен).
Я не могу представить никакой безопасности в этом;с другой стороны, если кто-то может подумать об этом, я буду очень рад услышать ваши отзывы.