【问题标题】:Authentication without password on Moodle在 Moodle 上无需密码的身份验证
【发布时间】:2011-05-24 12:02:45
【问题描述】:
实际上,我正在尝试将我的系统与 moodle 集成。我需要一个应该像这样工作的功能:
- 登录我的系统(与moodle db中的用户名相同)
- 用户决定切换到moodle,因此他单击脚本链接(在moodle服务器上-两个系统都在其他服务器上),我从数据库中获取有关我要登录的用户的所有数据(数据库中的整行) ...
- 由于密码已加密,我现在无法使用 post 参数重定向到登录表单,因为它不起作用。
有没有什么好的简单的方法可以实现这个目标?我有用户名和哈希并最终哈希密码。
我正在使用moodle 1.9(系统要求)。
提前感谢您的帮助,
问候大卫
【问题讨论】:
标签:
authentication
moodle
integrated
【解决方案1】:
SSO 和 Moodle 1.9 的一些注意事项:
【解决方案2】:
这就是我所做的
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)
对我来说它正在工作,但是。 . .我不关心安全。 . .如果你这样做。 . .您必须为此添加一些内容