微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Moodle上无需密码即可进行身份验证

如何解决在Moodle上无需密码即可进行身份验证

| 实际上,我正在尝试将我的系统与moodle集成。我需要一种可以这样工作的功能登录到我的系统(与moodle db中的用户名相同) 用户决定切换到moodle,因此他单击指向脚本的链接(在moodle服务器上-两个系统都在其他服务器上),然后从数据库获取登录用户的所有数据(数据库中的整个行)。 。 由于密码是加密的,因此我现在无法重定向到带有post参数的登录表单,因为它将无法正常工作。 是否有任何简便的方法可以实现这一目标?我有用户名和哈希,最终哈希了密码。 我正在使用moodle 1.9(系统要求)。 预先感谢您的帮助, 问候大卫     

解决方法

对于SSO和Moodle 1.9,需要注意以下几点: 如果您准备花很多时间,可以使用Mnet:http://docs.moodle.org/en/MNet 还有一种phpcas身份验证方法可以执行您想要的操作:http://docs.moodle.org/en/CAS_server_(SSO)     ,这是我所做的 1-我启用了(外部数据库)身份验证插件 2-在文件夹(my / moodle / root / login /)中创建此php文件
    <?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)
对我来说是有效的,但是。 。 。我不关心安全性。 。 。如果你愿意。 。 。你必须添加一些东西     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。