2014-12-05 63 views
1

我有一個Joomla網站和其他網絡應用,它是一個基於ASP.NET MVC。我希望在登錄到Joomla網站後自動登錄到其他應用程序。如何共享的Joomla登錄會話從一個網站的Joomla一ASP.Net MVC網站

例如是否有可能在的Joomla網站成功登錄後,會自動發出這個基於ASP的應用程序嵌入在查詢字符串中的用戶ID和密碼(當然加密)新的請求。那麼這個ASP應用程序會接收這些信息並解密密碼並執行自動登錄?

這裏的How to use web services to share Joomla login session from one website to another?一個Joomla網站與其他網站的Joomla一個例子。

我希望看到解釋解決方案的代碼示例。

+0

我想從兩邊的一些示例代碼(Joomla和ASP.NET MVC)。 – 2014-12-07 05:42:00

+0

更新我的答案添加示例PHP/Joomla插件代碼,並鏈接到一個PHP代碼示例登錄到PHP從PHP – GDP 2014-12-07 15:59:59

回答

0

我不熟悉與Joomla或ASP.NET,但我認爲這樣做最簡單的方法是通過存儲在公共位置的會話。這可能是兩個系統都可以訪問和讀取會話數據的數據庫。

該解決方案依賴於一個事實,即網站的一個存在與其他的子域或該系統的份額不能由兩個被讀取cookie。檢查此鏈接是否有其他解決此限制的解決方案。這是一個混亂的解決方案,但可能。

Cookie restriction workaround (Stack Overflow)

正如我說我也不知道框架,但我想你會用的方式會話鼓搗讀/在兩個系統中寫入。

希望這可以幫助你在正確的方向。

此致敬禮。

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代碼見this question從PHP登錄到ASP。

+0

感謝您的回覆,它是有用的Joomla方,但不幸的是我在ASP.NET MVC中的更大問題側。 – 2014-12-07 15:07:31

+0

一旦登錄到Joomla,ASP端有什麼「發生」?你說「自動發出一個新的請求到這個基於ASP的應用程序」 - 你知道如何在PHP中做到這一點? – GDP 2014-12-07 15:42:39

+0

不完全是這樣,因爲起初我並不完全知道基於ASP的應用程序希望從我那裏獲得,其次我不擅長PHP。但我從這些鏈接有一些猜測。 – 2014-12-07 16:35:34