文档介绍:如何实现 RTX 与 OA OA到 RTX 的单点登陆?. 原理 1. OA 系统客户端登陆, OA 系统服务端验证其客户端的合法性, 允许其登陆; 2. OA 系统服务端通过 RTX Server SDK 获取一个该用户的 session key ; 3. OA 系统将 session key 传到 OA 的客户端; 4. OA 的客户端(如果是浏览器,就使用客户端脚本语言)通过调用 RTX 客户端,传入用户名和 session key 作为密码(即是不需要输入密码)登录 RTX 服务器; 5. RTX 服务器验证用户名和 session key 有效(正确且不超时)就会让 RTX 客户端客户自动登陆。这里的 session key ,不是用户密码,是 RTX 服务器端临时生成的一个长字符串,是有一定时效的,一旦失效,就不能用它登陆了。?. 服务器端接口说明接口属于老接口: IRTXObject::Call2() 对象名称: SYSTOOLS 命令代码: 0x2000 说明: 获取 SessionKey , 用于单点登录时,从 Server 端获取登录的密钥。属性描述 USERNAME 登录者, RTX 中的用户名称或用户号码,必填参数。返回值 异常,否则返回登录密钥字符串。?. 客户端接口说明接口属于客户端的老接口: RTXAPI::Call() 命令名: CMD_LDAP_Login (注意:这个就是单点登录命令) 说明: RTXAPI 对象 Call 方法的 CMD_LDAP_Login 命令,是由用户名来登录指定的服务器,实现" 单点登录原理"。格式: Call( CMD_LDAP_Login, Property ); Property 参数一属性容器对象,需要按如下列表封入各参数值。属性描述: RTXUserName 登录的 RTX 用户名; LoginSessionKey 登录密码,调用 Server SDK API 获得的 session key ; ServerAddress 指 RTX 服务器所在的地址; ServerPort 指 RTX 服务器的端口号。?. 程序示例?. 服务器端程序方法一:使用老接口 = "" = "SYSTOOLS" "USERNAME", On error resume next RTXResult = (&H2000, RTXParams) if( < 0) then RTXResult = = RTXResult exit sub end if =" 操作成功" = RTXResult global_session_key = RTXResult 方法二:使用新接口 Set RootObj = createobject("") ' 创建 Root 对象 Set UserAuthObj2 = ' 通过根对象创建 UserAuthObj2 = ' 服务器端口 = ' 设置服务器端口 dim sessionkey sessionkey = () ' 验证用户签名 MsgBox "sessionky: "& sessionkey ?. 客户端程序 Private Sub cmdLogin_Click() Dim CMD_LDAP_Login As Integer Set CMD_LDAP_Login =2 Dim objAPI As Set objAPI = CreateObject("") Dim objProp As Object On Error GoTo ProcedureName_Err Set objProp = ("Property") ("RTXUsername") = "user1" ("LoginSessionKey") = GetSessionKey()