posts - 710,  comments - 81,  views - 260万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

     反向单点登录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看看端口是否打开

1
telnet 192.168.0.88 8006

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

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

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

    如何打开端口
  2.  

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

    如何打开端口
  3.  

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

    如何打开端口
  4.  

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

    如何打开端口
  5.  

    规则类型选择端口类型;

    如何打开端口
  6.  

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

    如何打开端口
  7.  

    操作策略选择允许连接;

    如何打开端口
  8.  

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

    如何打开端口
  9.  

    端口名称和描述,自拟;

    如何打开端口
  10.  

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

    如何打开端口
  11.  

步骤四:WCF发布到IIS

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

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

代码下载 

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

posted on   itprobie-菜鸟程序员  阅读(3108)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示