修改RTX用户密码的接口
在构建公司用户账户统一认证的系统,一直在为RTX所烦恼。
设想过使用LDAP来验证,尝试寻找了一下,发现RTX的LDAP插件都比较贵。后来又想直接修改RTX数据库的用户密码,发现没法得到RTX用户密码的加密方式。
最后实现的方式是通过RTX自带的接口来直接修改密码。说到这个我不得不说,RTX团队提供的SDK文档易用性和其中代码的可用性应该提高。寻找了很久,不是接口代码已经过期,就是提供的演示代码跑不通。
最后是重新构建了一个VB的项目,终于调试通了,摸索着写出了可以实现需求的PHP实现。共享出来给需要的童鞋们。
VB的关键代码如下:
Set rootobj = CreateObject("RTXSAPIRootObj.RTXSAPIRootObj")
Set UserManager = rootobj.UserManager
UserManager.SetUserPwd txtUserName.Text, txtPwd.Text
MsgBox "设置用户密码成功"
同样PHP的实现代码如下:
< ?php
try {
$RTXSvrApi= new COM("RTXSAPIRootObj.RTXSAPIRootObj");
$RTXSvrApi -> ServerIP= "127.0.0.1";
$RTXSvrApi -> ServerPort= 8006;
$UserManager = $RTXSvrApi->UserManager;
$result = $UserManager -> SetUserPwd('kimi','password');
if($result ==0)
{
$hasAlert = true;
}
}
catch (Exception $e) {
$errstr = $e->getMessage();
$splitstr = explode(':', $errstr, -1);
$errstrlast = $splitstr[count($splitstr)-1];
echo $errstr;
exit();
}