如何使C#与PHP会话对话

时间:2008-12-19 19:31:44

标签: c# php

我有一个C#网络应用程序,我想与PHP购物车集成,这可能吗?

5 个答案:

答案 0 :(得分:2)

除非它在数据库中并且你编写了一种在两种语言之间工作的(反)序列化算法,否则它是不可能的。如果它应该是只读访问权限,那么我会为只有这个目的的用户设置只读权限。

如果它存储在文件系统中,我认为访问它是不安全的。

答案 1 :(得分:2)

确实这取决于细节。您是否希望PHP应用程序在.NET环境中运行?如果是这样的话,我会看一下Phalanger,但我认为它不会按你的意愿运作。

你也可以查看PHP on IIS,但这也不会给你很多信息。

正如annakata所提到的,我假设您最好调用/重定向到PHP脚本或从PHP脚本重定向到ASP.NET网站。

我感觉这不是一件容易的事,所以......幸运的你;)

答案 2 :(得分:0)

嗯,你需要更详细地描述这些碎片,但如果可能的话,这将是非常重要的。

Response.Redirect to cart.php怎么样?inputparams = foo - >做的 - > PHP重定向到thankyou.aspx?inputparams = bar

您可以将PHP作为服务使用吗?

或者请求PHP的输出作为HTTPWebRequest?

答案 3 :(得分:-1)

这里有一些选择。虽然Java有更多的集成选项,特别是对于会话,C#/ .Net可能会依赖其他产品进行通信。

如果这是后台处理(例如,结账后处理完成的订单),它可能会更简单。但是,您想要混合Web应用程序。如何以及你想要混合它们可能(并且可能确实)使这个相当困难 - 或者至少是未知的水域。毕竟,PHP在IIS下的Apache和.Net Web应用程序下运行。

您将不得不经历另一个技术层。其他人提到了数据库,但这不是实时网络应用程序上会话存储的可行或高效解决方案。

您最好的选择可能是memcached,其中至少有一个C#客户端库。以下是cross-platform serialization using memcached的示例。

如果您有后台工作处理,

beanstalkd也可能值得考虑。它是一个分布式工作队列进程,有几个客户端库(例如Ruby,PHP,Perl,Erlang)。我看不到C#版本,但可能已经完成了。请参阅protocol docuentation

我之所以提到这一点是因为您可以将bean写入工作请求发送到beanstalkd而不是C#轮询或询问PHP会话。

答案 4 :(得分:-1)

PHP将其会话存储在文件中。 客户端cookie包含文件名,php.ini包含路径。

从dotnet访问php会​​话数据应该相对简单。 我正在寻找一个可以做到这一点的图书馆,但如果我找不到一个,我会自己写一个。