反向單點登錄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檔案,添加節點192.168.0.88
復制代碼
127.0.0.1
192.168.0.88
復制代碼
AppConnConfig.xml檔案:添加節點192.168.0.88
復制代碼
127.0.0.1
192.168.0.88
復制代碼
第三,重啟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防火墻>高級設定>入站規則>新建規則
首先,打開電腦的控制面板,然后在控制面板中找到防火墻;
如何打開埠
在防火墻設定左邊選擇點擊高級設定;
如何打開埠
高級安全設定中,我們點擊選擇左邊的入站規則;
如何打開埠
在右側欄選擇點擊新建規則;
如何打開埠
規則型別選擇埠型別;
如何打開埠
選擇tcp協議,特定埠,埠自己規定,比如4444;
如何打開埠
操作策略選擇允許連接;
如何打開埠
何時應用規則,默認全選;
如何打開埠
埠名稱和描述,自擬;
如何打開埠
退出之后,我們就看到創建的入站規則,該埠允許。
如何打開埠
步驟四:WCF發布到IIS
RTX的介面是都32位的,現在的機器基本是64位,在vs中除錯介面不報錯,但是發布到iis就報錯。
解決方法:將介面封裝成wcf發布到iis,Interop.RTXSAPILib.dll這個是32位的 將IIS 應用程式池 啟用32位應用程式 設定為true就可以了
uj5u.com熱心網友回復:
。。。。。。。這是提問的地方轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/28874.html
標籤:跨瀏覽器開發
上一篇:瀏覽器指紋繞過
下一篇:https請求http
