2012-11-15 62 views
0

我有一個網站與Joomla 2.5。
我有另一個由asp.net和c#編寫的應用程序。我需要那些在Joomla網站註冊的用戶可以使用相同的用戶名和密碼登錄到asp.net應用程序。
我需要當用戶想要登錄到asp.net應用程序,我的應用程序連接到Joomla數據庫(用戶表),並檢查他們的用戶名和密碼。
我不知道我該怎麼做。joomla與asp.net的集成

+0

我可以連接到我的Joomla數據庫。但問題是數據庫中的密碼字段是加密的。我不知道如何檢查用戶使用Joomla密碼填寫asp.net應用程序的密碼。 – user1825943

回答

0

http://www.geekgumbo.com/2010/07/02/use-joomla-login-credentials-outside-of-joomla/

這個網站有使用下面的登錄腳本:

//Change these to your Joomla details 
$dbhostname = 'localhost'; 
$dbusername = 'root'; 
$dbpassword = 'password'; 
$dbdatabase = 'joomla15'; 

// Get these from your form... 
$username_for_check = 'admin'; 
$password_for_check = 'admin'; 

$joomla_user; 
$joomla_pass; 
$joomla_salt; 

$mysqli = new mysqli($dbhostname,$dbusername,$dbpassword,$dbdatabase); 

if ($result = $mysqli->query('SELECT j.username,j.password FROM joomla15.jos_users j WHERE j.username="'.$username_for_check.'" LIMIT 1;')) { 

    if ($result->num_rows == 0){ 
     echo 'Username does not exist.'; 
    }else{ 
    while ($row = $result->fetch_object()) { 
     $joomla_user = $row->username; 

     $pass_array = explode(':',$row->password); 
     $joomla_pass = $pass_array[0]; 
     $joomla_salt = $pass_array[1]; 
    } 

    if($joomla_pass == md5($password_for_check.$joomla_salt)){ 
     echo 'Username and password combination validated.'; 
    }else{ 
     echo 'Invalid password for username.'; 
    } 
    } 
} else { 
    echo 'LOGIN VALIDATION: MySQL Error - '.$mysqli->error; 
} 

$mysqli->close(); 
0

也許你可以使用這個問題Central Authentication Service who called CAS解決方案。

Joomla有一些CAS插件,並且存在很多文章來解釋如何在C#ASP .NET中使用CAS。

這個Joomla插件可能會有所幫助。 External Login

但我的大問題是,當任何機構登錄Joomla網站我想在ASP.NET網站自動登錄,我不知道我會爲這個問題做什麼。欲瞭解更多詳細信息,你可以看到How to share Joomla login session from one joomla website to one ASP.Net MVC website