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

时间:2014-12-05 15:37:41

标签: c# php asp.net asp.net-mvc joomla

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

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

这里有How to use web services to share Joomla login session from one website to another?一个Joomla网站和另一个Joomla网站的示例。

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

2 个答案:

答案 0 :(得分:1)

我不熟悉ASP .NET MVC,但您可以通过引用Creating a Plugin for Joomla来拦截Joomla登录事件。它可以是非常简单User Plugin,您可以使用它访问许多事件,尤其是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代码,请参阅this question

答案 1 :(得分:0)

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

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

Cookie restriction workaround (Stack Overflow)

正如我所说,我不知道任何一个框架,但我想你会不得不修改两个系统中会话的读/写方式。

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

最好的问候。