0

我有一个使用 Joomla 2.5 的网站。
我有另一个由 asp.net 和 c# 编写的应用程序。我需要在 Joomla 网站上注册的用户可以使用相同的用户名和密码登录到 asp.net 应用程序。
我需要当用户想要登录到 asp.net 应用程序时,我的应用程序连接到 Joomla 数据库(用户表)并检查他们的用户名和密码。
我不知道我该怎么做。

4

2 回答 2

0

也许您可以使用调用 CAS 解决方案的 Central Authentication Service 来解决此问题。

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

这个 Joomla 插件可能会有所帮助。外部登录

但我的大问题是当任何人登录 Joomla 站点时,我想自动登录 ASP.NET 站点,但我不知道我该怎么解决这个问题。有关更多详细信息,您可以查看如何将 Joomla 登录会话从一个 joomla 网站共享到一个 ASP.Net MVC 网站

于 2014-12-07T15:51:25.513 回答
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();
于 2012-11-15T13:29:32.217 回答