2

我们有一个当前(旧)基于 PHP 的网站,该网站不太可能在明年左右重新开发,作为我们的主要门户。

我们想在 ASP.Net 中开发新的应用程序,并将它们插入当前的门户网站——但我们不希望我们的网站用户必须登录两次。

在两个平台之间共享身份验证状态的最佳方式是什么?它们不共享相同的服务器、数据库后端甚至代理。

4

3 回答 3

1

阅读 Microsoft 关于在经典 ASP 和 ASP.NET 之间共享会话状态的这篇文章:

http://msdn.microsoft.com/en-us/library/aa479313.aspx

从概念上讲,我认为这与您尝试做的非常相似,尽管我不知道上述文档对您的具体情况有多大帮助。不过绝对值得一看。

于 2009-06-08T11:06:44.677 回答
0

我想你最好的选择是一个单独的数据库或内存支持的服务器来处理会话状态。您可以使用 ASP.NET 内置的基于 SQL Server 的会话状态并将其手动添加到 PHP 或使用自定义解决方案。

于 2009-06-08T10:53:40.973 回答
0

对于一个相当大的项目,我需要这个一段时间。语言是 ASP.Net 和 ASP,但如果是 PHP 而不是 ASP,我最终使用的方法也同样有效。

你能抽象出你的 PHP 应用程序修改会话变量的地方吗?

我发现即使对于大型 Web 应用程序,也只有少数地方会更新会话变量。例如; LoginLogout,一些寻求更改组操作等。对我来说,需要修改的脚本不到 6 个。

对于每个修改会话变量的脚本,添加一个服务器重定向到一个新的 ASP.Net 脚本。因此,PHP 脚本将完成它必须做的所有事情,最后一件事将是 PHP 重定向(最后可能是 PHP Header("Location:...")调用。

您接收的 ASP.Net 脚本更新 ASP.Net 会话变量的方式与 PHP 脚本更新其会话的方式相同。幸运的是,在我的情况下,原始脚本没有输出任何数据,而是重定向到“成功”页面。

即原始脚本是 MVC 设计中的控制器代码,它们重定向到视图代码。这允许我在 ASP 控制器和视图脚本之间巧妙地插入我的 ASP.Net 脚本。如果您的接收脚本输出数据,那么您必须将其分成 2 页。

就是这样。实际上,对登录、注销和一些页面执行此操作有效地导致两个会话范围保持同步。

于 2009-06-08T15:35:50.640 回答