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.  

    退出之后,我們就看到創建的入站規則,該端口允許。

    如何打開端口
  11.  

步驟四:WCF發布到IIS

RTX的接口是都32位的,現在的機器基本是64位,在vs中調試接口不報錯,但是發布到iis就報錯。

解決方法:將接口封裝成wcf發布到iis,Interop.RTXSAPILib.dll這個是32位的 將IIS 應用程序池 啟用32位應用程序 設置為true就可以了

代碼下載 

程序員的基礎教程:菜鳥程序員


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM