2010-04-18 3 views
0

Я строю страницу платежа в asp.net, однако страница, где вы заказываете свои объекты, запускается в HTTP (незащищенном) в моем домене.Поддержание сеанса через ретрансляционный домен?

При перенаправлении пользователя на сайте оплаты, я должен пройти через другой домен (мой платеж провайдера, от которого я одолжить сертификат SSL), так что мой платеж URL заканчивается как https://www.paymentprovider.com/somescript.cgi/www.mydomain.com/mypaymentpage.aspx

Теперь проблема моя сессия потеряна, но я храню заказ в сеансе, поэтому мне отчаянно нужно это.

Могу ли я как-то отправить SessionID в querystring и восстановить сеанс из него - или мне нужно заполнить весь порядок в querystring? (Не слишком уверен, что это будет соответствовать, хотя, это довольно долго)

Любая помощь будет высоко оценен :-)

ответ

1

Штеффен

правильный способ заключается в использовании уникальный OrderId, что вы отправляете с оплатой, а затем платежный шлюз ITS отправить его обратно к вам.

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

Paypal выполните этот способ, с вашего заказа вам необходимо отправить на paypal уникальный идентификатор, который вы можете использовать его только один раз за одну транзакцию, а затем paypal сделать базовую базу на этом идентификаторе.

Другой способ, который вы говорите с сеансом, и файл cookie небезопасен, и оба могут закончиться, потерять, что когда-либо. В любом случае сеанс сохраняется в файле cookie. Более длительное время на сеансе может сделать все, что вы готовы работать, но небезопасно и беспорядочно, что происходит с сеансом или файлом cookie.

+0

Проблема в том, что заказ не хранится в базе данных, но я думаю, что мне нужно его изменить, поэтому я могу использовать подход OrderID. Спасибо за комментарий. – Steffen

+0

@Steffen Да, вы абсолютно должны исправить способ хранения уникального идентификатора orderID, даже если заказ оставлен открытым - и каждый новый заказ должен получить новый уникальный идентификатор orderID, и именно это вы передаете с этим заказом в каждом состоянии на ваших страницах. – Aristos

+0

Теперь у меня это работает. Я создаю каждый заказ в базе данных и использую guid для моего запроса при переходе между доменами. Я использую руководство, чтобы люди не могли просто изобразить в 1,2,3 и т. Д., Чтобы посмотреть заказы других людей. Я понимаю, что это не идеально, но когда я застрял с querystring, это в значительной степени лучшее, что я могу получить. Еще раз спасибо за ваш совет :-) – Steffen

-2

Почему вы не загрузите сессии в Cookie прямо перед перенаправлением, и когда пользователь достигает вашей области оплаты, заново создайте сеанс из этого файла cookie?

+0

, который был бы более чем опасным –

+0

И не работает, потому что файл cookie недоступен, так как я нахожусь в другом домене. – Steffen

Смежные вопросы