【发布时间】:2015-03-14 02:12:30
【问题描述】:
我正在开发一个使用 IP Payments 来处理交易的项目。该项目涉及一个用 ASP 编写的 Web 表单,以及用 C# 编写的 Code-Behind。
IPP 提供 iFrame 实施,您可以在页面中放置 iFrame,并显示一个小型 IPP 页面,其中包含用于输入信用卡信息的字段。这背后的想法是信用卡信息将仅由 IPP 处理,而不会由运行页面的服务器处理,因此不需要确保卡数据的安全。
为了在 iFrame 中显示 IPP 页面,需要使用 IPP 启动会话。服务器启动会话,并传入一个 SessionID 变量。会话启动成功后,将向服务器返回一个安全会话令牌。然后,服务器需要“强制”客户端的浏览器获取或发布 SessionID 和 SST(安全会话令牌)到 IPP 网站。这就是我的问题所在。
我在 ASPX 页面中编写了一个 Javascript 函数,该函数将接受两个参数 - SessionID 和 SST - 并将它们发送到 IPP 网站。我现在尝试在成功启动 IPP 会话后从我的 C# 代码调用此 Javascript 函数。但是,我已经完全做不到了。
我进行了很多搜索,但我不断遇到的一个答案是使用 RegisterStartupScript 或 RegisterClientScriptBlock。问题是,这些似乎直接将文本插入页面,而不是调用现有函数。假设我通过其中一个函数将我的函数插入页面而不是自己将其写入页面,它仍然不能解决我如何调用所述函数的问题。
现在我可能会以错误的方式解决这个问题,并且有一种更好的方法可以让客户端的浏览器获取/发布 SessionID 和 SST;如果是这样,请告诉我。我对 Web 编程缺乏经验,因此我边走边学,并在此过程中提出了很可能并不理想的解决方案。
提前致谢。
【问题讨论】:
-
“安全会话令牌”如何返回服务器?
-
一种选择是制作公共变量并将它们直接嵌入到 JavaScript 中。我从来没有真正看到
RegisterClientScriptBlock的原因...似乎比完成相同事情的其他方法更令人困惑...向客户端呈现正确的 HTML。 -
它作为某些 HTML 的一部分返回。我正在提取 SST 并将其放入一个字符串中。
标签: javascript c# asp.net