• RTX Server SDK跨服务器


         反向单点登录RTX,即通过腾讯通登录到其他的系统,登录腾讯通后其他的系统不用输入用户名和密码即可登录。可能有二种情况。腾讯通和其他系统在同一台服务器上或在不同的服务器上。要调用腾讯通的登录验证接口的系统必须安装RTX Server  SDK(rtx服务器安装的是2013版本,rtx server sdk安装的是2015版本)。项目引用sdk安装目录下的“APIObject.dll”文件。

     环境:

             RTX服务器端版本是2013,机器名为”A机器“,IP为”192.168.0.88“

    步骤一:安装Rtx Server sdk 

    在需要调用RTX接口的机器上安装Rtx Server SDK,这里提供的是RTX2015的接口 rtxserversdk2015formal.zip,亲测过可用

    步骤二:修改RTX服务器的配置,添加IP和端口的白名单

    1>开发环境和RTX服务器在同一台机器上,即RTX Server SDK和RTX服务器在同一台机器上

    以下是官方代码,是开发环境和RTX服务器在同一台机器上的情况。

     1     string strName = HttpContext.Current.Request.QueryString["user"];
     2     string strSign = HttpContext.Current.Request.QueryString["sign"];
     3 
     4     
     5     RTXSAPILib.IRTXSAPIRootObj RootObj = new RTXSAPILib.RTXSAPIRootObjClass();
     6     RTXSAPILib.IRTXSAPIUserAuthObj2 AuthObj2 = (RTXSAPILib.IRTXSAPIUserAuthObj2)RootObj.UserAuthObj;
     7 
     8     Response.Write(strName);
     9     Response.Write(strSign);
    10 
    11     bool bOK = AuthObj2.SignatureAuth(strName, strSign);
    12 
    13     if (bOK == true)
    14     {
    15         Response.Redirect("OA.html");
    16     }
    17     else
    18     {
    19         Response.Redirect("error.html");        
    20     }

    2>开发环境和RTX服务器在不同机器上,即RTX Server SDK和RTX服务器安装在不同机器上

    RTX Server SDK:A机器,IP为192.168.0.88

              RTX服务器:B机器,IP为192.168.0.120

    2.1>A机器,修改sdk的配置

    打开Tencent/RtxSSDK/RtxServerApi.ini文件,修改Host为B机器的IP

    [Common]

    Host=192.168.0.120

    Port=6000

    2.1>B机器,修改Rtx服务器的配置文件

    第一,修改代码,只需对官方代码稍作修改,指定RTX服务的ip和端口;

    第二,修改RTX服务器端配置,默认RTX 服务器只允许本机调用SDK,如果其他的机器需要调用,必须修改RTX 服务器安装目录的以下2个文件

            SDKproperty.xml文件,添加节点<IP>192.168.0.88</IP>

    <APIClient>
        <IPLimit Enabled="1">
            <IP>127.0.0.1</IP>
            <IP>192.168.0.88</IP>
        </IPLimit>
    </APIClient>

            AppConnConfig.xml文件:添加节点<IP>192.168.0.88</IP>

    <APIClient>
        <IPLimit Enabled="1">
            <IP>127.0.0.1</IP>
            <IP>192.168.0.88</IP>
        </IPLimit>
    </APIClient>

    第三,重启RTX服务器让配置生效。

     1  string strName = HttpContext.Current.Request.QueryString["user"];
     2     string strSign = HttpContext.Current.Request.QueryString["sign"];
     3 
     4     
     5     RTXSAPILib.IRTXSAPIRootObj RootObj = new RTXSAPILib.RTXSAPIRootObjClass();
     6     RTXSAPILib.IRTXSAPIUserAuthObj2 AuthObj2 = (RTXSAPILib.IRTXSAPIUserAuthObj2)RootObj.UserAuthObj;
     7 
     8     Response.Write(strName);
     9     Response.Write(strSign);
    10     
    11     RootObj.ServerIP = "192.168.0.88";
    12     RootObj.ServerPort = 8006;
    13     bool bOK = AuthObj2.SignatureAuth(strName, strSign);
    14 
    15     if (bOK == true)
    16     {
    17         Response.Redirect("OA.html");
    18     }
    19     else
    20     {
    21         Response.Redirect("error.html");        
    22     }

    步骤三:开启8006端口

    sdk需要调用8006端口,在命令行telnet看看端口是否打开

    telnet 192.168.0.88 8006
    

     如果端口没有打开,则通过下面步骤打开8006端口

    windwos防火墙>高级设置>入站规则>新建规则

    1. 首先,打开电脑的控制面板,然后在控制面板中找到防火墙;

      如何打开端口
    2.  

      在防火墙设置左边选择点击高级设置;

      如何打开端口
    3.  

      高级安全设置中,我们点击选择左边的入站规则;

      如何打开端口
    4.  

      在右侧栏选择点击新建规则;

      如何打开端口
    5.  

      规则类型选择端口类型;

      如何打开端口
    6.  

      选择tcp协议,特定端口,端口自己规定,比如4444;

      如何打开端口
    7.  

      操作策略选择允许连接;

      如何打开端口
    8.  

      何时应用规则,默认全选;

      如何打开端口
    9.  

      端口名称和描述,自拟;

      如何打开端口
    10.  

      退出之后,我们就看到创建的入站规则,该端口允许。

      如何打开端口

    步骤四:WCF发布到IIS

    RTX的接口是都32位的,现在的机器基本是64位,在vs中调试接口不报错,但是发布到iis就报错。

    解决方法:将接口封装成wcf发布到iis,Interop.RTXSAPILib.dll这个是32位的 将IIS 应用程序池 启用32位应用程序 设置为true就可以了

    代码下载 

    程序员的基础教程:菜鸟程序员

  • 相关阅读:
    PolarDB Btree 并发控制优化
    从函数计算到 Serverless 架构
    对软件系统的一些理解
    MySQL统计信息不准导致的性能问题
    Serverless 架构下的 AI 应用开发
    阿里云云原生一体化数仓数据安全能力解读
    400倍加速, PolarDB HTAP实时数据分析技术解密
    LindormOperator云原生实践
    Python RE 正则表达式模块
    Metasploit 生成各种后门
  • 原文地址:https://www.cnblogs.com/guohu/p/4329110.html
Copyright © 2020-2023  润新知