如何将Joomla登录会话从一个Joomla网站共享到一个 ASP.Net MVC网站


How to share Joomla login session from one joomla website to one ASP.Net MVC website

我有一个Joomla网站和另一个基于MVC ASP.NET Web应用程序。我希望在登录Joomla网站后自动登录到另一个应用程序。

例如,在成功登录Joomla网站后,是否可以自动向这个基于ASP的应用程序发出新的请求,并将用户ID和密码(当然是加密的)嵌入在查询字符串中。然后这个ASP应用程序会获取该信息并解密密码并执行自动登录吗?

以下是如何使用Web服务将Joomla登录会话从一个网站共享到另一个网站?一个Joomla网站与另一个Joomla网站的示例。

我希望看到解释解决方案的代码示例。

我不熟悉ASP .NET MVC,但是您可以通过参考为Joomla创建插件来拦截Joomla登录事件。 它可以是一个非常简单的用户插件,您可以使用它访问许多事件,尤其是 OnUserLoginOnUserAfterLogin . 您在这两个事件中的任何一个中输入的代码是使用 CURL 或任何其他技术来发布 ASP 请求的地方。

非常基本的代码结构:

<?php 
defined('_JEXEC') or die; 
class Plgtest extends JPlugin {   
    public function onUserLogin($user, $options = array()) {
        // The user has now logged into Joomla - all user info is available in variable $user
        // Do some PHP stuff here to "issue a new request to this ASP based app"
        // Example PHP code for ASP login at https://stackoverflow.com/questions/25539787/how-to-post-asp-net-login-form-using-php-curl
    } 
} 
?>

有关从 PHP 登录到 ASP 的 PHP 代码,请参阅此问题。

我不

熟悉Joomla或 ASP.NET,但我认为最简单的方法是将会话存储在公共位置。这可能是两个系统都可以访问和读取会话数据的数据库。

此解决方案依赖于这样一个事实,即其中一个网站作为另一个网站的子域存在,或者系统共享的cookie不能被两个网站读取。查看此链接以获取解决此限制的另一种解决方案。这是一个混乱的解决方案,但有可能。

Cookie 限制解决方法(堆栈溢出)

正如我所说,我不知道这两个框架,但我想你必须修改两个系统中读取/写入会话的方式。

希望这可以帮助您朝着正确的方向前进。

此致敬意。