2012-11-15 51 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