大家好:
首先,很抱歉我的流程描述冗长,但我认为它可能有助于描述问题。
背景:
构建使用托管付款页面来处理付款的 asp.C# 购物应用程序(使用将数据发布到托管付款页面)。SSL 证书已签名并安装。
流动:
Prelim) (HTTPS) 用户使用 asp 登录控件进行身份验证
1) 用户将商品添加到购物车。
2)(HTTPS)用户去结帐页面。
3) 用户完成订单,同意条款后点击立即付款。
4) 服务器获取购物车数据(来自 MSSQL2005)并设置事务 cookie(到期设置为 20 分钟)。
5) (HTTPS) 服务器响应。重定向到 html 页面(与登录保护页面位于同一文件夹中)。
6) Html 页面读取交易cookie 数据并生成表单字段。
7) (HTTPS) Html 页面将数据发布到托管支付页面 (php)。
8) 用户输入付款信息并点击立即付款。
9) (HTTPS) 托管支付页面将信息发布回 .aspx 页面,检查支付是否正常。
10a) 如果付款!OK,重定向到被拒绝的页面。
10b) (HTTPS) 如果付款正常,则设置验证 cookie(有效期设置为 20 分钟)。然后重定向到另一个 html 页面。
11) Html页面读取cookie数据并生成表单域。
12) (HTTPS) Html 页面将数据发布到托管验证页面 (php)。
13)验证页面验证(当然),如果交易正常。
14) (HTTPS) 验证页面将数据发布到 .aspx 页面,检查验证是否正常。
15)如果验证OK,处理订单并做收据。
问题:
此控制流在未签名的开发环境中进行了测试。如果需要对未签名的 SSL 证书执行 SSL。所以我们会得到证书可能不好的提示,但控制流可以无缝运行。
但是,现在使用签名的 SSL 证书,从第 5 步到第 6 步,我们遇到了一些用户(不是每次都重复,但验证确实发生了)当他们点击立即付款并被重定向到 html 页面的情况,他们被迫回到 ~/login.aspx 页面(就像他们被注销一样)。
注意事项:
a) 会话没有超时。
b) 浏览器启用了 cookie 和 javascript。
c) 我可以在同一台机器上与其他帐户无缝处理整个流程,偶尔也可以使用同一个帐户。
所以,基本上,我很难过......这是视图状态错误吗?一个登录控制错误不会让我重定向到一个 html 页面,因为它现在使用的是真正的 SSL?有人有这种交易的经验吗?在这一点上,我对解决方案一无所知。
任何帮助将不胜感激。亲切的问候,
杰拉