Moodle上没有密码的身份验证

时间:2011-05-24 12:02:46

标签: authentication moodle integrated

实际上我正在尝试将我的系统与moodle集成。我需要一个应该像这样工作的功能:

  1. 登录我的系统(与moodle db中的用户名相同)
  2. 用户决定切换到moodle,所以他点击脚本链接(在moodle服务器上 - 两个系统都在其他服务器上),我从数据库获取有关我想登录的用户的所有数据(从数据库整行) )......
  3. 由于密码是加密的,我现在无法重定向到包含邮政参数的登录表单,因为它不起作用。
  4. 有没有什么好方法可以实现这个目标?我有用户名和哈希值,最终哈希密码。

    我正在使用moodle 1.9(系统要求)。

    提前感谢您的帮助,

    关心大卫

2 个答案:

答案 0 :(得分:1)

有关SSO和Moodle 1.9的一些注意事项:

答案 1 :(得分:0)

这就是我做的事情

1 - 我启用了(外部数据库)身份验证插件

2 - 在文件夹中创建此php文件(my / moodle / root / login /)

    <?php
    require('../config.php');
    $username =  $_GET['id'];// 's3265';
    $serverName = 'moodle' ;
    $connectionInfo = array( "UID"=>"mssqlUser","PWD"=>"********","Database"=>"external_Database");
//I am using MSSQL2008
        echo '<form action="' . $CFG->wwwroot . 
             '/login/index.php" method="post" name="login" id="form">';

    $conn = sqlsrv_connect( $serverName, $connectionInfo );

    if (!$conn)
       {die('Could not connect: ' . sqlsrv_error());}
    $result = sqlsrv_query($conn , "SELECT * FROM Users WHERE LoginID = '" . $username . "'");

    var_dump($conn, $result);
    while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC))
    {
            echo  $row['FName'] . " " . $row['LName'] . ", please wait. . .";
        $password =  $row['LoginPassword'];
    }
    sqlsrv_close($conn);
?>
        <p><input type="hidden" name="username" value="<?php echo $username ?>">
                <p><input type="hidden" name="password" value="<?php echo $password ?>">

        <script language="JavaScript">
             function Validate(){document.login.submit();}

             Validate();
        </script>

</form>

3 - 假设您将rhr文件命名为(test.php)  现在您的链接应该像(http://your_domain/moodle/login/test.php?id=yourusername) 对我而言,这是有效的,但是。 。 。我并不担心安全问题。 。 。如果你这样做。 。你必须在这个

添加一些东西