Вместо того, чтобы приложение PHP отправляло данные в ваше приложение ASP, было бы лучше, если бы они могли изначально и безопасно совместно использовать некоторые данные.
Как?
Что ж, ваша цель - заставить один скрипт сообщить другому, что пользователь вошел в систему, верно?В PHP это обычно делается, помещая что-то в $_SESSION
.Однако ваше приложение ASP не может прочитать $_SESSION
.Вам нужно будет использовать что-то еще.
Когда пользователь входит в систему, создайте уникальное значение .Может быть, результат hash_hmac
на некоторых интересных данных?Что бы это ни было, оно должно быть уникальным каждый раз, когда оно создается и не угаданным.Не добавляйте такие вещи, как IP-адрес пользователя или текущее время.
Сохраните уникальное значение в таблице базы данных, которую могут прочитать оба приложения.Также храните другую информацию, которая поможет идентифицировать пользователя, такую как ее идентификатор (user_id или что у вас есть под рукой).
Итак, код PHP, который регистрирует пользователя, создал это уникальное значение и вставил его вобщая таблица базы данных.Теперь приложение PHP должно перенаправить пользователя в ваше приложение ASP.Включите уникальное значение в запрос.
Когда приложение ASP получит запрос, оно будет искать уникальное значение.Если он найден, его можно посмотреть в общей таблице.Если значение найдено в таблице, оно может принять любые меры , которые ему необходимы для того, чтобы пометить пользователя как вошедшего в систему.
Как только приложение ASP зарегистрировало пользователя,тогда он должен удалить уникальное значение из общей таблицы.Пользователь может быть перенаправлен туда, куда он направлялся.
Сделав ключ пригодным для использования только один раз и только после успешного входа в приложение PHP, вы уменьшите вероятность злоупотреблениязлые или любопытные пользователи.Вся важная информация будет скрыта в таблице общей базы данных.
Имейте в виду, что это слишком упрощенная реализация "единого входа" и полна предостережений и крайних случаев.Хотя это может работать для вас, это может быть не лучшее решение.Учитывая историю ваших вопросов, похоже, что вы уже давно боретесь с подобными проблемами.Вы можете подумать об использовании немного более «стандартного» механизма единого входа. SAML - 800-фунтовая горилла стандартов SSO.Обычно я не желал бы этого от своего злейшего врага, но, может быть, это то, что вы действительно ищете здесь.
Кроме того, не используйте фреймы, они печеночные бедствия в некоторых браузерах.