我有一个Joomla网站和另一个网络应用程序,这是基于ASP.NET的MVC。我希望在登录到Joomla网站后自动登录到另一个应用程序。
例如,在成功登录Joomla网站后,是否可以自动向此基于ASP的应用程序发出新的请求,并在查询字符串中嵌入用户ID和密码(当然是加密的)。然后,这个ASP应用程序将获取该信息并解密密码,然后执行自动登录?
下面是一个Joomla站点和另一个Joomla站点的How to use web services to share Joomla login session from one website to another?示例。
我希望看到解释解决方案的代码示例。
发布于 2014-12-06 02:41:12
我对ASP MVC不太熟悉,但是你可以通过引用Creating a Plugin for Joomla来拦截.NET登录事件。它可以是一个非常简单的User Plugin,通过它您可以访问许多事件,特别是OnUserLogin和OnUserAfterLogin。您放在这两个事件中的代码就是您使用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
}
}
?>有关从this question登录到ASP的代码,请参阅PHP。
发布于 2014-12-06 00:00:04
我不熟悉Joomla或ASP.NET,但我认为最简单的方法是将会话存储在公共位置。这可以是两个系统都可以访问和读取会话数据的数据库。
这种解决方案依赖于这样一个事实,即其中一个网站作为另一个网站的子域存在,或者系统共享的cookie不能被两个都读取。请查看此链接,了解解决此限制的其他解决方案。这是一个混乱的解决方案,但也是可能的。
Cookie restriction workaround (Stack Overflow)
正如我所说的,我不知道这两个框架中的任何一个,但我想你必须在两个系统中对会话的读/写方式进行修补。
希望这篇文章能帮助你找到正确的方向。
诚挚的问候。
https://stackoverflow.com/questions/27319451
复制相似问题