войти пользователя на другой URL - PullRequest
2 голосов
/ 04 мая 2011

Итак, у меня есть админ-панель для веб-сайта, который отличается от основного сайта. В настоящее время мы хэшируем пароли для всех пользователей на основном сайте. Клиенту нужен способ автоматического входа на основной сайт с сайта администратора. У меня возникли проблемы с выполнением этого, потому что настройка сеанса кросс-URL - реальная боль До сих пор я пробовал веб-сервис и использовал HttpWebRequest, чтобы попасть на веб-страницу, которая автоматически авторизует пользователя. Ни одна из этих работ из-за проблем сессий.

Так что я думаю, мой вопрос будет, каков наилучший способ сделать это? Он также должен быть очень безопасным. В настоящее время я использую хэш с истекающим временем для безопасного входа в систему.

Обновление

Я думал об Open ID. Хотя я не могу использовать его, потому что у нас уже есть определенная система аутентификации, идея та же самая, я хочу разработать что-то подобное без изменения моей логики аутентификации.

1 Ответ

0 голосов
/ 04 мая 2011

Что я делаю, так это использую базу данных для обмена сессиями / идентификаторами пользователей:

  • В веб-приложении A у меня есть ссылка на веб-приложение B.
  • Ссылкаимеет уникальный идентификатор входа (например, идентификатор сеанса) веб-приложения A в качестве параметра.

Тогда «рабочий процесс» выглядит примерно так:

  1. Когдапользователь щелкает ссылку (или просто в Page_Load), идентификатор сеанса сохраняется в БД.
  2. Открывается веб-приложение B, передается идентификатор сеанса веб-приложения A.
  3. Веб-приложение B ищет в базе данных и ищет идентификатор сеанса веб-приложения A.
  4. Когда оно найдено, некоторые проверки безопасности выполняются (например, возраст записи).
  5. Если всевсе в порядке, пользователь вошел в веб-приложение B.

Таблица имеет вид структуры, подобной этой:

+--------------------------------------------------------+
| ID | SessionID | UserID | DateWhenThisRecordWasCreated |
+--------------------------------------------------------+

С этой конфигурацией вы можете передавать входы между различнымисвязанные приложения, они только должны получить доступ к той же базе данных.(Если вы не можете совместно использовать базу данных, можно подумать, что веб-приложение A предоставляет веб-службу SOAP, к которой веб-приложение B может запрашивать взамен).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...