跨中继域维护会话?

时间:2010-04-18 10:52:43

标签: asp.net session cross-domain

我正在asp.net中构建一个付款页面,但是您订购商品的页面是在我的域上以HTTP(非安全)方式运行的。

将用户重定向到付款网站时,我必须通过其他域名(我的付款服务提供商,我借用SSL证书),因此我的付款网址最终会像https://www.paymentprovider.com/somescript.cgi/www.mydomain.com/mypaymentpage.aspx

现在问题是我的会话丢失了,但我将订单存储在会话中,所以我迫切需要它。

我可以以某种方式在querystring中发送SessionID,并从中恢复会话 - 或者我是否需要将整个订单填入查询字符串? (不太确定它适合,但它相当长)

任何帮助都将受到高度赞赏: - )

2 个答案:

答案 0 :(得分:1)

斯特芬

正确的方法是使用您使用付款发送的唯一订单ID,然后付款网关将其发送给您

它的声音不是那么简单,因为为了安全起见,你需要以太网来加密orderID,发送它并加密,否则每个人都可以看到并更改你的订单,以太网通过某种加密方式与支付网关通信协议

Paypal这样做,您的订单需要向PayPal发送一个唯一的ID,您只能在一次交易中使用它一次,然后PayPal就此ID进行参考。

你对会话和cookie说的另一种方式是不安全的,两者都可以过期,丢失,永远。无论如何,会话都保存在cookie上。更长的会话时间可以让你所有人都准备工作 - 但它不安全,随机发生在会话或cookie上。

答案 1 :(得分:-3)

为什么不在重定向之前将会话加载到Cookie中,当用户到达您的付款区域时,从该Cookie重新创建会话?