Asp.net 跨中继域维护会话?

Asp.net 跨中继域维护会话?,asp.net,session,cross-domain,Asp.net,Session,Cross Domain,我正在asp.net中构建一个支付页面,但是您订购项目的页面在我的域上以HTTP(非安全)运行 当将用户重定向到支付站点时,我必须通过另一个域(我的支付提供商,我从他那里借用SSL证书),因此我的支付url类似于 现在的问题是我的会话丢失了,但是我将顺序存储在会话中,所以我非常需要它 我可以在querystring中发送SessionID并从中恢复会话吗?或者我需要将整个订单填充到querystring中吗?(虽然不太确定它是否合适,但它相当长) 非常感谢您的帮助:-)为什么不在重定向之前将会话

我正在asp.net中构建一个支付页面,但是您订购项目的页面在我的域上以HTTP(非安全)运行

当将用户重定向到支付站点时,我必须通过另一个域(我的支付提供商,我从他那里借用SSL证书),因此我的支付url类似于

现在的问题是我的会话丢失了,但是我将顺序存储在会话中,所以我非常需要它

我可以在querystring中发送SessionID并从中恢复会话吗?或者我需要将整个订单填充到querystring中吗?(虽然不太确定它是否合适,但它相当长)


非常感谢您的帮助:-)

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

Steffen

正确的方法是使用您随付款一起发送的唯一orderId,然后使用付款网关将其发送回您

这并不像听起来那么简单,因为为了安全起见,您需要以太加密orderID,然后发送并加密,否则每个人都可以看到并更改您的订单,以太通过某种加密协议与支付网关通信

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


另一种说法是,会话和cookie不安全,它们都可能过期、丢失等等。会话仍然保存在cookie上。长时间的会话可以使您所有的准备工作都能正常进行-但是对于会话或cookie来说,这是不安全的,而且是随机的。

这比不安全的多,因为cookie不可用,因为我在不同的域中。问题是顺序没有存储在数据库中,但我想我必须改变它,所以我可以使用OrderID方法。谢谢您的评论。@Steffen是的,您必须修复一种方法来存储唯一的orderID,即使订单保持打开状态-并且每个新订单都必须获得一个新的唯一orderID,这就是您在页面的每个状态下传递该订单的内容。我现在已经让它运行了。我在数据库中创建每个订单,并在域之间传递查询字符串时使用guid。我使用guid,这样人们就不能仅仅用1、2、3等来查看其他人的订单。我意识到这并不完美,但当我被querystring困扰时,这几乎是我能得到的最好的了。再次感谢您的建议:-)