如何使用 Moodle 构建网站并与 DRM-X 4.0 课程加密系统无缝集成

Moodle 是一款可以用来搭建课程网站的软件。DRM-X 4.0 与 Moodle 的集成在于,当用户打开受保护的文件以获取许可证时,网站会检查用户是否拥有课程访问权限,以便您确认客户是否可以获取许可证,并调用 DRM-X许可证将其发送给客户。最终,我们将把受保护的文件嵌入到 Moodle 中,这样用户就可以登录您的网站查看课程,而无需额外的验证。

更多教程

1:安装 Moodle 并配置您的网站。

从 Moodle 官网下载最新的安装包,解压后上传到您的服务器。按照提示修改配置并完成安装,包括建立 Moodle 数据库。因此,您必须拥有自己的服务器和数据库。以下演示使用了本地 PC 上搭建的 Apache 和 MySQL 服务器。网上有很多关于 Moodle 安装的教程,所以我们这里不再赘述。

安装完成后,注册管理员账号。然后登录创建课程。

moodlemoodle

创建课程示例后,为您的学生添加用户帐户。

moodlemoodle

为学生添加用户账号后,请授予学生学习“课程示例”的权限。在“参与者”页面,点击“注册用户”即可允许学生学习该课程。

moodlemoodle

在这里,我们完成了一个简单的课程创建并添加了一个学生用户。接下来,我们将向空白课程中添加加密内容。我们可以使用 DRM-X 4.0 加密平台对一些视频、音频或 PDF 文件进行加密,并将 DRM-X 4.0 与 Moodle 集成,然后将加密文件嵌入到 Moodle 中。这将使您的学生能够轻松安全地学习课程。

2:注册一个 DRM-X 4.0 帐户并加密您的课程。

从 Xvast 官方网站下载 Windows 版 Xvast 浏览器: https://www.xvast.cn安装完成后打开 Xvast。

要通过 Xvast 浏览器注册 DRM-X 4.0 帐户, https://4.drm-x.com/register.aspx

moodle

登录新注册的 DRM-X 4.0 账户。在 DRM-X 4.0 控制面板中,首先点击“权限”添加新权限。设置权限描述、权限价格、开启次数、首次使用后失效时间、保护文档、禁止打印以及启用水印。您可以设置水印内容以防止盗版。动态水印支持两种显示模式。第一种模式是设置水印的位置和变化频率。第二种模式是跑马灯效果,安全性更高。

moodlemoodle

DRM-X 4.0 继承了 3.0 的黑名单防录屏功能。通过设置黑名单程序,可以有效阻止黑名单程序进行录屏或截图操作。当用户打开受保护的文件时,如果 Xvast 检测到黑名单程序正在运行,Xvast 将立即阻止该程序的进程。目前,黑名单程序包含数百种录屏和截图程序。

moodle

海海软件提供独有的智能防录屏技术。该技术能够自动高效地检测市面上现有的屏幕录制软件,甚至包括未来可能推出的录制软件。这有助于内容提供商更好地控制其受DRM-X 4.0保护的内容的权限。

moodle

通过这些步骤,我们已经成功获得了自定义许可证。

moodle

然后,我们添加一个新的许可证配置文件,使用我们上面添加的权限。我们可以使用此配置文件加密文件。

moodle

需要强调的是,“系统中的 productID”的值必须与您数据库中的课程 ID 相同。通常,学生的选课记录存储在“mdl_role_assignments”表中。这里,“课程示例”的课程 ID 为 56,因此我们需要将“系统中的 productID”更改为 60。此外,我们可以发现,用户 ID 为 6 的用户帐户拥有学习该课程的权限。

moodle

如果您觉得在庞大的数据库中查找参数过于繁琐,也可以直接在 Moodle 帐户中查找该参数。点击课程“参与者”列中的“设置”。将鼠标悬停在“权限”上。您可以在屏幕左下角找到 URL。最后一个数字就是我们要查找的课程的产品 ID。

moodle

然后我们可以使用该配置文件加密文件。

点击进入“保护文件”,选择我们上面添加的正确的许可证配置文件。

moodlemoodle

选择要加密的文件,然后单击“开始”。

moodle

好了,现在我们已经加密了一个视频文件。其他音频文件或PDF文件也可以用同样的方法加密。

加密的详细过程可以参考以下教程:

视频加密: https://www.drm-x.com/DRM-X4.0_encryption_tutorial.aspx

网页加密: https://www.drm-x.com/DRM_web_page_html_encryption_tutorial.aspx

PDF加密: https://www.drm-x.com/How_To_Encrypt_PDF.aspx

3:moodle 与 DRM-X 4.0 的集成。

现在我们需要将 DRM-X 4.0 与 Moodle 网站集成。集成完成后,选择您课程的学生只需登录您的 Moodle 网站即可查看课程中的加密内容。下面我们来演示一下具体的集成操作。

根据示例代码,您需要复制四个名为“index.php”、“reindex.php”、“login.php”和“licstore.php”的页面。当用户打开加密文件时,系统会自动跳转到“index.php”页面,检查用户是否已登录其Moodle账户。如果未登录,则跳转到“reindex.php”页面进行登录。否则,直接跳转到“login.php”页面,验证用户的密码是否正确,以及用户是否拥有学习相应课程的权限等。您可以在此页面自由添加和修改验证码。之后,如果用户通过验证,系统将跳转到“licstore.php”页面获取许可证并打开加密文件。

在 'index.php' 文件中,获取加密文件的相应信息,包括 profileid、clientinfo、rightsid、yourproductid、platform、contenttype、version 和 return_url。将这些参数存储在全局变量 $USER 中,以便后续调用。然后判断用户是否已登录其 Moodle 帐户。

require_once("../config.php");
$USER->ProfileID = $_REQUEST["profileid"];
$USER->ClientInfo = $_REQUEST["clientinfo"];
$USER->Platform = $_REQUEST["platform"];
$USER->ContentType = $_REQUEST["contenttype"];
$USER->ProductID = $_REQUEST["yourproductid"];
$USER->RightsID = $_REQUEST["rightsid"];
$USER->Version = $_REQUEST["version"];
$USER->Return_URL = $_REQUEST["return_url"];

if (isloggedin() or isguestuser()){
    echo "<script language=JavaScript>location='login.php';</SCRIPT>";
}else{
    echo "<script language=JavaScript>location='reindex.php';</SCRIPT>";
}

如果学生尚未登录 Moodle,请跳转至 'reindex.php'(这不是 Moodle 的初始登录页面,该页面允许用户在不登录 Moodle 的情况下获取查看加密文件的许可证)。否则,请跳转至 login.php 进行具体验证。

如果用户尚未登录Moodle,则需要验证密码。如果用户已登录Moodle,则无需验证密码。

if($_GET['un'] == 'login'){
	$username = $_REQUEST["username"];
	$pwd = $_REQUEST["password"];
	
	/****** verify the password *******/
	$result = mysqli_query($dbcon,"SELECT ID,password,email FROM mdl_user WHERE username ='" .$username. "'");
	$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
	$email = $row['email'];
	$t_hasher = new \PasswordHash(8, FALSE);
	$newpwd= $t_hasher->CheckPassword($pwd, $row['password']);
	if ($newpwd != true ) {
		$info = "Your Account or Password is incorrect! <br><br>Please revisit the course!";
 	}else{
		$ username			= $username;
		$_SESSION['pwd']	= $pwd;
		$ userid			= $row['ID'];
		$ userEmail 		= $email;
	}
/** **/
// If the user has already logged into moodle, there is no need to verify the password.
}else{
	$username = $USER->username;
	$userEmail = $USER->email;
	$userid = $USER->id;
}

然后验证用户是否拥有学习该课程的权限。如果验证通过,将用户信息保存到 DRM-X 4.0 帐户,然后获取许可证并跳转到下一页打开加密文件。请注意,下方红色代码需要替换为您的 DRM-X 4.0 帐户、您设置的 Web 服务身份验证字符串(如下所述)以及 GroupID。

// Query the order based on the user ID
$id_query = mysqli_query($dbcon,"SELECT id FROM mdl_user WHERE username='" .$username. "'");
$id_row = mysqli_fetch_array($id_query, MYSQLI_ASSOC);
$id_result = $id_row['id'];

$courseid_query = mysqli_query($dbcon,"SELECT contextid FROM mdl_role_assignments WHERE userid='" .$id_result. "'");
while($courseid_row = mysqli_fetch_array($courseid_query, MYSQLI_ASSOC)){
	$courseid_result = $courseid_row['contextid'];
	if ($courseid_result == $USER->ProductID){
		/******* Check whether the user exists on the DRM-X platform********/
		$wsdl="http://4.drm-x.com/haihaisoftlicenseservice.asmx?wsdl";
		$CheckUser_param = array(
			'UserName' 				=> $username,
			'AdminEmail' 			=> 'yourEmail@163.com', //your DRM-X 4.0 account
			'WebServiceAuthStr' 	=> 'aaaaaa', // the Web Service Authentication String you set in DRM-X 4.0 background
		);

		$client = new nusoap_client($wsdl, 'wsdl');
		$client->soap_defencoding = 'UTF-8';
		$client->decode_utf8 = false;
		$CheckUser = $client->call('CheckUserExists', array('parameters' => $CheckUser_param), ', ', true, true);

		$CheckUser_result = $CheckUser['CheckUserExistsResult'];
		/*** End detecting whether the user exists **/

		//If the username is not exists, call "AddNewUser" to add user.
		if($CheckUser_result == "False"){
			$add_user_param = array(
				'AdminEmail' 		=> 'yourEmail@163.com',// your DRM-X 4.0 account
				'WebServiceAuthStr' => 'aaaaaa',// the Web Service Authentication String you set in DRM-X 4.0 background
				'GroupID' 			=> '11726',//GroupID
				'UserLoginName' 	=> $username,// Username or ID
				'UserPassword' 		=> 'N/A', 
				'UserEmail' 		=> $userEmail,
				'UserFullName' 		=> 'N/A', 
				'Title' 			=> 'N/A',
				'Company' 			=> 'N/A',
				'Address' 			=> 'N/A',
				'City' 				=> 'N/A',
				'Province' 			=> 'N/A',
				'ZipCode' 			=> 'N/A',
				'Phone' 			=> 'N/A',
				'CompanyURL' 		=> 'N/A',
				'SecurityQuestion' 	=> 'N/A',
				'SecurityAnswer' 	=> 'N/A',
				'IP' 				=> getIP(),//
				'Money' 			=> '0',// 
				'BindNumber' 		=> '2',// 
				'IsApproved' 		=> 'yes',// 
				'IsLockedOut' 		=> 'no',// 
			);

			$add_user = $client->call('AddNewUser', array('parameters' => $add_user_param), ', ', true, true);
			$result = $add_user['AddNewUserResult'];
		}
		/*** Successfully added new users ***/
		/***** obtain a license after the license authority is updated ****/
		$param = array(
		  'AdminEmail' 			=> 'yourEmail@163.com',// your DRM-X 4.0 account
		  'WebServiceAuthStr'  => 'aaaaaa',// the Web Service Authentication String you set in DRM-X 4.0 background
		  'ProfileID'          => $USER->ProfileID,
		  'ClientInfo'         => $USER->ClientInfo,        
		  'RightsID'           => $USER->RightsID,
		  'UserLoginName'      => $username, 
		  'UserFullName'       => 'N/A', 
		  'GroupID'            => 11726,//GroupID
		  'Message'            => 'N/A',
		  'IP'                 => getIP(),
		  'Platform'           => $USER->Platform, 
		  'ContentType'        => $USER->ContentType,
		  'Version'            => $USER->Version, 
		);

		$client = new nusoap_client($wsdl, 'wsdl');
		$client->soap_defencoding = 'UTF-8';
		$client->decode_utf8 = false;
		/***** Obtain a license by calling the getLicenseRemoteToTableWithVersion method ******/
		$result = $client->call('getLicenseRemoteToTableWithVersion', array('parameters' => $param), ', ', true, true);
		$license = $result['getLicenseRemoteToTableWithVersionResult'];
		$message = $result['Message'];

		if(stripos($license, ' <div id="License_table_DRM-x4" style="display:none;">' )  === false )
		  echo "<SCRIPT language=JavaScript>'location='LicError.php?error=".$license."&message=".$message."';</SCRIPT>";
		/***** After obtaining the license, store the license and message into $USER, then jump to the licstore page. ******/
		$USER->license = $license;
		$USER->message = $message;
		 echo "<SCRIPT language=JavaScript>location='licstore.php';</SCRIPT>";
		$flag = 1;
		$info = "Getting license...";
		exit;
	}
}

这里只是一个最简单的验证示例。如果您在 Moodle 中安装了更多功能插件,例如课程购买、费用支付等,您还需要在代码中添加验证,以确认学生是否已提交订单以及付款是否已完成。

再次进入DRM-X平台的账户设置选项,点击“网站集成首选项”,然后点击“自定义登录页面集成”。填写“Web服务身份验证字符串”和“许可证URL”。用户打开加密文件后,将跳转到您的Moodle集成页面进行验证。

moodlemoodle

现在,我们基本完成了DRM-X与Moodle网站的集成。之后,您只需将加密文件发送给学生,他们应该可以在Xvast浏览器中打开它。但是,即使收到了文件,那些没有课程访问权限的学生也无法查看加密文件。

您还可以将加密文件直接嵌入到您的 Moodle 页面中,以便您的学生可以直接在您的网站上浏览和学习您的课程。

在您刚刚创建的“课程示例”主题 1 中添加活动或资源,然后选择该页面。

moodlemoodle

如下所示,在 HTML 列中添加嵌入代码。嵌入代码已保存在示例代码文件夹中,您只需将下方红色 URL 替换为您加密文件的 URL 即可。

moodle
'<'div id="Xvast_Video_URL" style="display: none;"'>'https://www.drm-x.com/download/DRMX4/JesusFilm_cn_P.mp4'<'/div'>'
'<'script type="text/javascript" src="https://www.xvast.com/dist/js/embedPlayer.js"'><'/script'>'
'<'script type="text/javascript" src="https://www.xvast.com/dist/js/video.js"'><'/script'>'
'<'script type="text/javascript" src="https://www.xvast.com/dist/wordpress/XvastVideoJSPlayer.js"'><'/script'>'

请检查并禁用网站设置中的“将 URL 转换为链接和图像”设置(控制面板--网站管理--插件--过滤器--管理过滤器)。如下图所示:

moodle

4:打好你的球。

集成完成后,您即可播放课程。在 Xvast 浏览器中打开您的网站,并使用学生账号登录。然后打开“课程示例”,Xvast 将自动获取许可证并播放加密内容。

moodle

嵌入代码后,视频将以这种方式显示。视频播放时会出现两个移动的水印。您可以自定义水印内容以防止被录制。此外,DRM-X 4.0 还具备黑名单和智能防录屏技术,可防止恶意录制或截屏。参加课程的学生可以直接播放加密视频。

同样,您可以将加密的 PDF 文件链接直接添加到课程页面。学生可以获得阅读许可证。水印可以防止恶意截屏,因为水印中的内容会泄露上传者的个人信息。

moodle

到目前为止,我们已经介绍了如何基于 Moodle 构建教学网站、如何使用 DRM-X 4.0 加密文件以及如何将 DRM-X 4.0 与 Moodle 集成。借助这些功能,您的学生可以轻松查看加密文件,同时您也可以避免因课程转让或出售而导致的盗版问题。

其他 DRM-X 4.0 教程

DRM-X 4.0 Introduction VideoDRM-X 4.0 介绍视频

本视频将演示如何使用 DRM-X 4.0 平台,包括加密前的设置以及如何加密视频。我们还将向您展示如何播放加密视频。

立即观看
DRM-X 4.0 Introduction VideoDRM-X 4.0 HTML 网页加密教程

DRM-X 4.0 可加密网页(包括 HTML、CSS、JavaScript 和图像),并控制谁可以查看您的网页内容。它可以阻止复制、防止打印和屏幕截图,并在内容不再需要查看时使其过期。

立即观看
DRM-X 4.0 Introduction VideoXvast Windows 视频教程

我们通过视频演示如何下载、安装和使用 Xvast 浏览器,如何打开加密文件以及如何解决使用中遇到的问题。

立即观看
DRM-X 4.0 Introduction VideoDRM-X 4.0 视频加密教程

本视频将演示如何使用 DRM-X 4.0 平台,包括加密前的设置以及如何加密视频。我们还将向您展示如何播放加密视频。

立即观看
DRM-X 4.0 Introduction VideoDRM-X 4.0 与 WordPress 集成

自定义登录页面集成是指当客户从您的网站订购受保护的内容时,播放该内容时会弹出您网站自定义的登录页面。客户输入您网站帐户的用户名和密码后,即可立即获得播放受保护文件的许可证。这需要您创建一个新的DRM登录页面。

立即观看
DRM-X 4.0 Introduction VideoDRM-X 4.0 安全设置

使用 DRM-X 4.0 平台时,请注意以下事项。为了增强保护效果,请选择一系列必要的选项以防止盗版。这些设置必须在初始阶段完成,这一点非常重要。

立即观看

有问题?

我们的技术支持有答案!

询问DRM-X产品,定价,方案或其他相关咨询 - 我们专业的销售代表随时准备提供帮助。

电话:+64 27 507 9959(新西兰)

QQ:1279126286 / 994184623

请通过以下方式联系我们微软团队

service#haihaisoft.com(将#替换为@)

联系我们
contactUs