authCookie и повторно зарегистрировать пользователя - PullRequest
0 голосов
/ 12 апреля 2011

Сценарий: У меня сложная ситуация, когда многие модули должны быть довольны [Google Analytics и т. Д. И т. Д.]. В проекте появилась страница asp.net, которая инициирует запрос на стороннем веб-сайте (после нажатия кнопки «Обработка») и перенаправляет пользователя на сторонний веб-сайт. Транзакция обрабатывается на их веб-сайте, а затем элемент управления возвращается на текущую страницу нашего сайта. Вы также можете связать этот сценарий с обработкой Paypal, но это не PayPal.

Проблема: Если время сеанса истекло, я хочу, чтобы пользователь снова прошел аутентификацию, когда элемент управления достигнет нашего веб-сайта после того, как обработка будет выполнена на стороннем веб-сайте. Поэтому я подумываю передать информацию authCookie стороннему веб-сайту, а затем, когда элемент управления вернется на наш сайт, я получу информацию authCookie (представьте, что это сценарий), а затем захочу снова войти в систему. Могу ли я сделать что просто путем создания authCookie снова на основе имени пользователя?

1 Ответ

0 голосов
/ 12 апреля 2011

Это действительно зависит от системы обработки транзакций, которую вы используете. Если вы проверяете результат транзакции, вызывая их API, то в ответе обычно есть идентификатор пользователя или что-то, что вы можете привязать к идентификатору пользователя. Вы можете сохранить имя пользователя в файле cookie, файлы cookie относятся к домену или поддомену, и оно не будет отправлено на веб-сайт обработки транзакций, если он находится в другом домене, чем ваш, что, скорее всего, имеет место. Получите или извлеките имя пользователя из ответа на результат транзакции, сравните его с тем, которое вы получили из своего cookie. Если они совпадают, войдите в систему. Подписать пользователя только на основании содержимого файлов cookie во многих отношениях рискованно. Прежде всего, любой может установить cookie с любым именем в браузере. Во-вторых, если вы входите в систему только на основе файла cookie, вы, по сути, получаете никогда не истекающий сеанс. Это не то, что вы хотите. Для дополнительной безопасности вы можете проверить время транзакции из ответа на результат транзакции и отказаться от входа, если это было слишком давно.

О, и в своем вопросе вы упоминаете, что вам «нужно поддерживать множество модулей довольными», но вы не расширяете, что вы подразумеваете под этим. Так что я просто игнорирую этот бит. Не уверен, как выглядит счастливый модуль =)

...