反向单点登录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服务器在同一台机器上的情况。

     string strName = HttpContext.Current.Request.QueryString["user"];
string strSign = HttpContext.Current.Request.QueryString["sign"]; RTXSAPILib.IRTXSAPIRootObj RootObj = new RTXSAPILib.RTXSAPIRootObjClass();
RTXSAPILib.IRTXSAPIUserAuthObj2 AuthObj2 = (RTXSAPILib.IRTXSAPIUserAuthObj2)RootObj.UserAuthObj; Response.Write(strName);
Response.Write(strSign); bool bOK = AuthObj2.SignatureAuth(strName, strSign); if (bOK == true)
{
Response.Redirect("OA.html");
}
else
{
Response.Redirect("error.html");
}

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服务器让配置生效。

  string strName = HttpContext.Current.Request.QueryString["user"];
string strSign = HttpContext.Current.Request.QueryString["sign"]; RTXSAPILib.IRTXSAPIRootObj RootObj = new RTXSAPILib.RTXSAPIRootObjClass();
RTXSAPILib.IRTXSAPIUserAuthObj2 AuthObj2 = (RTXSAPILib.IRTXSAPIUserAuthObj2)RootObj.UserAuthObj; Response.Write(strName);
Response.Write(strSign); RootObj.ServerIP = "192.168.0.88";
RootObj.ServerPort = ;
bool bOK = AuthObj2.SignatureAuth(strName, strSign); if (bOK == true)
{
Response.Redirect("OA.html");
}
else
{
Response.Redirect("error.html");
}

步骤三:开启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就可以了

代码下载

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

RTX Server SDK跨服务器的更多相关文章

  1. RTX Server SDK跨服务器如何调用

    1.   确认安装RTX Server SDK在开发的机器上必须确认已经安装了RTX Server SDK,并且与RTX Server的版本要一致.该计算机后面我们简称SDK计算机. 2.   步骤2 ...

  2. sql server 数据库跨服务器备份,复制监视器——快照代理,复制流程

    在做数据库跨服务器复制时,查看复制监视器的快照代理,可以看到复制流程,具体如下: 初始化 连接发布服务器 设置服务器数据库兼容性级别 更新索引的统计信息 在生成快照时锁定已发布的表 复制快照数据(每个 ...

  3. sql server 2008 跨服务器查询

    exec sp_addlinkedserver 'ITSV','','SQLOLEDB','192.168.202.53' exec sp_addlinkedsrvlogin 'ITSV','fals ...

  4. SQL Server的跨服务器数据访问方法

    想要在SQL服务器上访问另一个服务器的数据,可以采用此方式: 1.建立数据库链接: 右键“链接服务器”,选择“新建链接服务器...” 以上的操作也可以通过SQL脚本实现: exec sp_addlin ...

  5. SQL SERVER 数据库跨服务器备份

    原文:https://www.cnblogs.com/jaday/p/6088200.html 需求介绍:每天备份线上正式库并且把备份文件复制到测试服务器,测试服务器自动把数据库备份文件还原. 方案介 ...

  6. SQL Server 跨服务器操作

    Ø  简介 在工作中编写 SQL 时经常会遇到跨库或跨服务器操作,比如查询时,通过 A 服务器的某张表关联 B 服务器某张表,进行连接查询.或者从另一台服务器中的数据,对当前数据库中的数据进行 CRU ...

  7. SQL Server跨服务器建立视图

    create view View_AppCus as select dwmch,zjm from ksoa.dbo.mchk SQL Server跨服务器操作经常需要用到,下面就为你介绍的是SQL S ...

  8. SQL Server跨服务器查询的实现方法,OpenDataSource

    SQL Server跨服务器查询的方法我们经常需要用到,下面就为您介绍两种SQL Server跨服务器查询的方法,如果您感兴趣的话,不妨一看. SQL Server跨服务器查询方法一:用OPENDAT ...

  9. Sql Server 跨服务器连接

    用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset --查询示例 select * from openrowset('SQLOLEDB', 'sql服 ...

随机推荐

  1. Linux GNU C

    Linux 系统上可用的C编译器是GNU C编译器,它建立在自由软件基金会的编程许可证的基础上,因此可以自由发布.GNU C对标准C 进行一系列扩展,以增强标准C的功能. 1.零长度数组GNU C 允 ...

  2. 论BOM管理的若干重要问题

    在制造业信息化建设过程中,BOM管理的意义已经被广泛认同与重视.BOM管理是企业产品数据管理领域要解决的核心问题,对制造企业的信息流和业务流程具有重要影响,可以说企业BOM数据架构已是企业架构的一部分 ...

  3. js正则表达式验证大全--转载

    转载来源:http://www.cnblogs.com/hai-ping/articles/2997538.html#undefined //判断输入内容是否为空 function IsNull(){ ...

  4. java代码---------打印正三角形

    总结:手打一遍 public class aaa{ public static void main(String []args){ for(int i=1;i<10;i++){ for(int ...

  5. oracle 中GROUP BY的用法

    转自:http://blog.csdn.net/basenet855x/article/details/6694150 问题: select item.itemnum,item.in1,item.in ...

  6. Jsp+Servlet+JDBC的使用复习

    最近对JDBC进行了复习,对事物的理解,连接池的使用等部分都有一个复习,所以使用Servlet+JDBC完成了一个小Demo,在这里对这种底层的操作进行总结.框架的使用的确方便了我们的开发,但是底层的 ...

  7. Java web概述

    声明:为了使初学者能更好的了解java web,所以我整理了下资料,概述了web应用程序. 一.web概述 静态web资源:内容是静态的,不同的人在不同的时间来访问时都是相同的内容.HTML.CSS. ...

  8. ODPS基础

    遇到一个项目需求是统计128张分库分表的数据表记录的最大id,通过单表查询计算非常费时,也无法应对分表数更多的情况,因此考虑到通过odps进行任务发布和运算 在云端 http://d2.alibaba ...

  9. django-bower

    https://django-bower.readthedocs.io/en/latest/usage.html

  10. 查看Java文件对应的字节码

    1. 编译为class文件:javac 2. 使用javap查看bytecode:javap -v