[英]Persist Session from ASP.NET to PHP
我有一个ASP.NET登录表单,该表单在成功登录后会创建一个会话。它使用POST。
我想在PHP端检索此会话数据,但不确定如何实现。
会话名称为“ CUSTOMER_LOGGED_IN”。
我在PHP模板的标头中使用'session_start()'来持久化会话, 它确实做到了 ,但是我不确定如何在PHP模板中显示会话数据。
有人可以协助吗?
非常感谢您的指导。
正如thenetimp所提到的,您不能直接访问该会话。 Cookie或文件系统的替代方法是数据库,因为您不需要存储任何数据客户端,也不需要处理将文件读/写到文件系统中。
这个问题还有其他一些好的解决方案。
您错过了由服务器端语言实现会话的要点。 asp.net中的会话管理将与php实现不同。 您将需要设计一些共享会话数据的机制,可能通过身份验证cookie和共享的服务器端会话存储。
您将需要找到一种方法来告诉asp.net和php用户具有什么会话令牌。 理论上你会
我不得不承认这并不容易。 无论哪种方式,我认为共享这些信息都是一种努力。 我对php的了解比对asp.net的了解要多,但是这些概念可以翻译。 在php中,您可以使用session_set_save_handler()功能来覆盖会话的工作方式。 这将允许您从数据库中存储和检索会话,这对您的工作至关重要。
在共享主机上,出于安全目的,我经常将会话存储在数据库中。 理想情况下,如果可以避免的话,您不想在每个请求上都与远程数据库联系,这就是为什么我只将其用于很少用户的管理后端功能。 有一些关于如何实现此目标的教程,可以定制以使用不同的保存机制
看到:
http://www.devshed.com/c/a/PHP/Storing-PHP-Sessions-in-a-Database/
您可能还考虑在asp.net端对所需的所有会话数据进行加密,将这些数据作为cookie存储在客户端,然后让php通过解密加密的cookie来创建自己的会话。 您必须谨慎使用这些方法,并且对于php和asp.net访问来说,都应该通过https进行。
您根本没有提及任何有关域的信息。 如果要在远程位置上进行身份验证,则类似于CAS身份验证。
我希望这对您有所帮助,至少可以指出您的目标。 也许已经这样做的人将能够提供更具体的建议。
ASP和PHP stor会话不同,因此您不能直接访问它们。 您可以使用cookie加密会话数据并将cookie传递给php。
唯一的其他方法是,如果它们共享您将使用ASP写入文件系统然后使用PHP读取文件系统的文件系统,但是如果双方都需要写入相同的会话数据,则可能会变得混乱。 因此,我不建议您这样做。
最好的选择是proc会话,它将会话信息存储在ASP.NET和PHP都可以访问的外部存储(例如sql数据库)中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.