Coldfusion सत्र - कैसे वास्तव में सीएफ एक कनेक्शन की पहचान है/अद्वितीय ग्राहकColdfusion सत्र - कैसे वास्तव में सीएफ एक कनेक्शन की पहचान है/अद्वितीय ग्राहक
दूरस्थ सीएफसी मैं पद VBA से कहा जाता है के साथ खुदाई कुछ करने के बाद मैंने पाया कि वे सत्र सेट भी। जिसने मुझे विभिन्न ग्राहकों के बीच सीएफ कैसे अंतर किया है, इस बारे में स्पष्टीकरण के लिए मुझे सोचने और गुगलिंग (असफल) करने के लिए मिला। मैंने पहले माना था कि यह क्लाइंट की पहचान करने के लिए एक ब्राउज़र कुकी सेट की जा रही थी, लेकिन फिर मैं एक शब्द ऐप के माध्यम से एक वेब सेवा का उपभोग कर रहा था और अभी भी सत्र चर और सत्र आईडी सेट प्राप्त कर रहा था।
तो यदि मैं ब्राउजर (क्रोम) के माध्यम से अपने ऐप में लोड और लॉगिन करता हूं और एक टेस्ट पेज हिट करता हूं तो मुझे jsessionID = 123 मिलता है, अगर मैं फ़ायरफ़ॉक्स को फायर करता हूं और लॉगिन करता हूं तो मुझे उम्मीद के अनुसार एक अलग jsessionid = 234 मिलता है। यदि मैंने वर्ड वीबीए का उपयोग कर एक वेब सेवा wsdl के रूप में एक दूरस्थ सीएफसी मारा है तो मैं देख सकता हूं कि jsessionid = 345 VBA मॉड्यूल पर वापस आ गया है। अगर मैं वर्ड बंद करता हूं और अपने मैक्रो को फिर से खोलता हूं (वेब सेवा के लिए लॉगिन अनुरोध होता है) मुझे एक नया jsessionID = 567
तो सीएफ की पहचान के अनुरोध के बारे में क्या है और यह क्लाइंट की पहचान कैसे जारी रखता है ?
यह एक VBA http कॉल
Sub doHTTP()
Dim MyRequest As Object
Dim Val
httpString = "http://localhost:8888/test.cfm"
Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
MyRequest.Open "GET", httpString
' Send Request.
MyRequest.Send
MsgBox MyRequest.ResponseText
'now pass in the session urltoken we have just retreived
MyRequest.Open "GET", httpString & "?urltoken=" & MyRequest.ResponseText
' resend a request, this time with the urltoken.
MyRequest.Send
'take a look and see if the session variables are correct
MsgBox MyRequest.ResponseText
End Sub
एक test.cfm
<cfif isdefined("URL.urltoken")>
<cfset session.urltoken="#URL.urltoken#">
<cfelse>
<cfset session.username="bob">
</cfif>
<cfoutput>session.urltoken="#session.urltoken#"</cfoutput><br>
<cfoutput>session.username="#session.username#"</cfoutput><br>
<cfoutput>session.sessionID="#session.sessionID#"</cfoutput>
ठीक है कि अब काम करता है, दिलचस्प में
में एक ही मुद्दा है, मैं वेब सेवा या http के लिए याद करने की आवश्यकता होगी कॉल ब्राउज़र का उपयोग नहीं करने के लिए मुझे URL में मैन्युअल रूप से sessionID को पास करने की आवश्यकता होगी।
क्या आप अपना वीबीए कोड दिखा सकते हैं? – Antony