如何在ASP中从PHP中捕获会话信息?

时间:2010-10-21 20:00:05

标签: php asp.net session single-sign-on

我正在一个像登陆点一样工作的网站,为许多其他网站提供专业服务。用户登录到不同的站点,这些站点都有指向我网站的链接。

现在,我想使用asp .net创建我的网站,而且我希望能够使用SSO(单点登录),这样用户在登陆我的网站时就不必再次进行身份验证。 / p>

问题是,大多数将要使用我网站服务的网站都是在php中,当用户在这些网站上登录时,所有的身份验证过程都会被处理,并且很多数据都会被提取到Session变量中;我想要做的是能够在我的asp站点中捕获来自php页面的会话变量中的所有数据。

我不知道这是否可行,也许这可以用另一种方式完成

到目前为止,我在asp中唯一可以做的是,在url中请求一个参数并使用该参数查询数据库以获取php中会话中已有的所有数据。 / p>

所以如果你们中的任何一个人知道这样做的话。

由于

3 个答案:

答案 0 :(得分:1)

您可以将数据库用作所有页面都可访问的会话存储点。这使得通过php或asp访问会话数据非常容易。

我认为这将是最有效的方式。

如果您不想让其他php网站对您的数据库进行任何访问,您还可以创建一个特殊的页面,不用于在asp中使用,并告诉php网站通过curl在那里删除会话内容然后在那个sie然后将会话内容保存在数据库中。

答案 1 :(得分:1)

您的问题并不清楚您是在一台服务器上托管ASP和PHP网站,还是您的ASP网站将与其他第三方网站一起使用。

如果您在一台计算机上运行和管理ASP和PHP站点,那么将会话信息存储在数据库中将是最佳选择,并且不会太困难。您需要确保PHP和ASP都可以读取您存储在数据库中的会话数据 - 我会选择像JSON这样简单的东西。 url参数对于获取此数据是一种不好的方式,因为它使任何可以猜测用户ID的人都可以使用用户信息。

但是,如果您想为第三方网站提供SSO功能,那就不那么简单了。在这种情况下,您必须实施第三方网站可以调用的身份验证API,以便在用户最初自己对用户进行身份验证时将其用户登录到您的网站。

答案 2 :(得分:1)

我的公司做得很广泛。我们的应用程序将信息从我们的软件传递到其他系统,如CRM,预约调度程序,数据聚合器等。如果系统完全不同并且没有明确给出访问权限,我们发现的最佳解决方案是使用cURL并协商通过API进行数据交换。与具有不同技术能力的人进行设置可能具有挑战性(我们实际上为我们想要与之通信的多个系统提供了代码),但最终它的效率和安全性。

与许多UI人员不同,我是单一登录的OpenID粉丝。但是,这并未传递您可能希望在站点之间进行交换的所有数据。