本文最后更新于 4987 天前,其中的信息可能已经有所发展或是发生改变。
在构建公司用户账户统一认证的系统,一直在为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();
}
Real brain power on dpsilay. Thanks for that answer!
HHIS I sholud have thought of that!
喜欢你网站简介的风格,克隆一下不知道是否介意。
朋友能否留一个联系方式呢,我用你的PHP代码测试,修改成功了,但需要用原先的密码再登录一次再退出才可以用改过之后的密码登录,不知道你遇到这个问题了吗?
应该是时间延迟,RTX会有个大概几分钟的时间延迟,才能使用修改后的密码。