如何解决在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 举报,一经查实,本站将立刻删除。