下圖是 Fiddler Post發送時的截圖,公司內網的一個系統 java sun applet,把一些公司敏感標識去掉了,
這個請求發送之后,會收到包含 set Cookie 的 header,我需要用收到的 cookie 來進行后面的操作,
但是不太會模擬這個請求,嘗試過用 document.cookie,結果回傳空,
請老師指點一下
我用了如下代碼,但是實在是不知道如何寫 post data 這一塊
Dim objHTTP As Object
Dim URL As String
Dim PostData as String
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
URL = "Https://xxxxxx"
PostData = ""
With objHTTP
.Open "POST", URL, False
.setRequestHeader "User-Agent", "Mozilla/4.5 [en] (winNT; I)"
.setRequestHeader "companyID", "CN"
.setRequestHeader "Auth_Mode", "2"
.setRequestHeader "CONTENT_TYPE", "application/octet-stream"
.setRequestHeader "Cache-Control", "no-cache"
.setRequestHeader "Pragma", "no-cache"
.setRequestHeader "Host", "XXXXX.com"
.setRequestHeader "Accept", "text/html, image/jpeg, *; q=.2, */*; q=.2"
.setRequestHeader "Proxy-Connection", "Keep-alive"
.setRequestHeader "Content-type", "application/x-www-form-urlencode"
.setRequestHeader "Content-Length", "419"
.Send PostDate
End With
uj5u.com熱心網友回復:
看上去像一個物體化的JAVA類。。大概是特殊定制的登錄程序。肯定不是用瀏覽器直接登錄的吧?
uj5u.com熱心網友回復:
抱歉,沒仔細看你的文字說明。我提供一個思路,在你的應用中加入一個瀏覽器控制元件,看看能否直接呼叫這個登錄的applet,正常完成登錄程序。
一個windows的exe實體,可以視為一個域,在這個域內,cookie是能夠自動在下一次post data的時候帶上的。
我講一個實體看看對你有沒有啟發。
某公司當前所有的應用認證都是web形式的單點登錄,有一個很老的應用,客戶端是vb6編譯,通過訪問中間件服務器上跑的java介面來完成業務操作,現在需要現代化改造應用這個單點登錄機制。
最終改造了老的登錄視窗,加入了一個瀏覽器控制元件,用這個控制元件訪問單點登錄的url,并且在瀏覽器url的跳轉事件中截取新的url來判斷是否登錄成功。登錄成功之后,所有的通信都通過msxml組件post或get,這個時候之前獲得的cookie就已經自動在每一個的post或get帶入了。這個時候,再打開另一個exe實體,就需要另一次登錄,從而帶入另一個cookie。
現在,這個應用運行的很好,解決了員工賬號維護的問題,也符合了公司的資訊安全規范。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/20048.html
標籤:網絡編程
上一篇:求大佬幫忙 VB程式中出現 “運行時錯誤‘5’:無效的程序的呼叫或引數”,
下一篇:Catia二次開發
