【问题标题】:Communication between PHP and ASP.NET on the same IIS Server同一台 IIS 服务器上的 PHP 和 ASP.NET 之间的通信
【发布时间】:2013-12-02 05:33:26
【问题描述】:

我们有以下设置:

-Windows 2008 R2 标准版。

-部署在 Microsoft IIS 7.5 Web 服务器上的 ASP.NET Web 应用程序。

-PHP 版本 5.4.21 非线程 32 位版本

-WISP(Windows、IIS、SQL Server/Express 和 PHP)堆栈和 ASP.NET Web 应用程序 HTTPS (SSL)

我们最终将在同一个 IIS 服务器上部署一个 ASP.NET Web 应用程序和一个 PHP Web 应用程序。

用户将首先登录到 ASP.NET Web 应用程序,但我们希望用户能够轻松地在 ASP.NET Web 应用程序和 PHP Web 应用程序之间来回导航。

我们计划在 ASP.NET Web 应用程序端和 PHP 应用程序端实现基于 REST 的 Web 服务。

用户登录框架仅在 ASP.NET Web 应用程序端(对于那些熟悉 ASP.NET 技术的人,我们使用 ASP.NET Membership Framework)。

正如我之前提到的,用户将首先登录到 ASP.NET Web 应用程序,但我们希望用户能够轻松地在 ASP.NET Web 应用程序和 PHP Web 应用程序之间来回导航。

当用户从 ASP.NET 端导航到 PHP 端时,我们是否必须重新验证用户身份,反之亦然?

当用户从 ASP.NET 端导航到 PHP 端时传递登录 cookie(“安全令牌”)是否足够安全?反之亦然?

请随意提出上述方法的替代方案(例如,有人告诉我使用 Memcached 技术在 ASP.NET Web 应用程序和 PHP Web 应用程序之间共享会话信息。Memcached 技术比使用 Web 更好吗?服务?)

【问题讨论】:

    标签: php asp.net web-services rest memcached


    【解决方案1】:

    我成功地实现了与您描述的完全相同的东西,但方向相反。用户将在 PHP 端(现有的旧站点)进行身份验证,我们只需通过 cookie 获取安全令牌,然后读取同一个数据库以确保令牌仍然有效。对于每天支持数百名普通用户的网站来说,工作没有问题。在我们的例子中,PHP 服务器和 ASP.NET 服务器实际上甚至托管在不同的设施中。

    请注意,使用基于 cookie 的安全令牌(会话令牌)是司空见惯的。只要域没有从浏览器的角度发生变化,或者您在进行身份验证时正确设置了 cookie 的路径,您就不必做任何额外的事情来让您的用户浏览器维护并向您发送令牌。

    【讨论】:

    • 您使用该数据库来存储 Session 值,这就是 PHP 和 ASP.NET 相互通信的方式。对吗?
    • 是的,当用户成功通过身份验证时,我们将生成令牌并将其与其他一些元数据一起粘贴在用户记录的列中。然后在另一边,我们只是通过在同一个表中为用户查找令牌来检查令牌是否仍然有效。我们保存的元数据还允许我们按时间记录用户页面点击量,以便执行超时会话等操作。这将在双方无缝衔接。
    猜你喜欢
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 2016-07-23
    • 2015-08-25
    • 1970-01-01
    相关资源
    最近更新 更多