Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá elementos...
Estou c/ 1 pequeno problema que p/ vocês é muito simples de resolver...
Estou precisando acessar uma página que se encontra na área restrita de um site e o mesmo trabalha com SESSION (eu acho).
Pergunta: Como eu faço para estar resgatando e/ou passando valores de session via XMLHTTP??? Se eu tento acessar após o code abaixo, (dentro de um IF XMLHTTP.READYSTATE=4), me aparece uma mensagem de "erro de sessão expirada"
Por exemplo:
set xmlhttp=server.CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.open "POST", "https://www.siteexterno.com.br/adm/EntrarLogin.do?login=user&senha=pass"
xmlhttp.send
if xmlhttp.ReadyState=4 then
xmlhttp.open "GET", "https://www.siteexterno.com.br/adm/index.do"
xmlhttp.send
...
end if
OBS.: Este site usa SSL sim!Consegui ser claro na minha dúvida???
Isso Então significa q eu me lasquei... <_<
Agora só me resta chorar até eu pensar em algo que funfe... Por 1 acaso, você não teria alguma alternativa boa p/ mim?? rs
Vlw por enquanto
acho que falta uma coisinha pra autenticar. veja como eu faço e sempre funcionou em http, não sei se em https vai funcionar. mas recurar session de outro servidor não vai rolar, lembre-se que o xmlhttp vai te devolver a resposta do servidor e não sua execução:
DataToSend = "login=user&senha=pass"
set xmlhttp = Server.CreateObject("MSXML2.XMLHTTP.3.0")
xmlhttp.Open "POST", "https://www.siteexterno.com.br/adm/EntrarLogin.do", False
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.send DataToSend
Set xmlhttp = nothing
Response.Redirect "item.asp"
depois na página item.asp
set xmlhttp = Server.CreateObject("MSXML2.XMLHTTP.3.0")
xmlhttp.Open "POST", "https://www.siteexterno.com.br/adm/index.do", False
xmlhttp.send
Response.ContentType = "text/html"
resposta = BinaryToString(xmlhttp.responseBody)
response.write resposta
Set xmlhttp = Nothing
Public Function BinaryToString(xBinary)
Dim Binary
Dim RS, LBinary
If VarType(xBinary)=8 Then Binary = MultiByteToBinary(xBinary) Else Binary = xBinary
Const adLongVarChar = 201
Set RS = CreateObject("ADODB.Recordset")
LBinary = LenB(Binary)
If LBinary>0 Then
RS.Fields.Append "mBinary", adLongVarChar, LBinary
RS.Open
RS.AddNew
RS("mBinary").AppendChunk Binary
RS.Update
BinaryToString = RS("mBinary")
Else
BinaryToString = ""
End If
Set RS = NothingPublic Function MultiByteToBinary(MultiByte)
Dim RS, LMultiByte, Binary
Const adLongVarBinary = 205
Set RS = CreateObject("ADODB.Recordset")
LMultiByte = LenB(MultiByte)
If LMultiByte>0 Then
RS.Fields.Append "mBinary", adLongVarBinary, LMultiByte
RS.Open
RS.AddNew
RS("mBinary").AppendChunk MultiByte & ChrB(0)
RS.Update
Binary = RS("mBinary").GetChunk(LMultiByte)
End If
Set RS = Nothing
MultiByteToBinary = Binary
Você não tem acesso a SESSION através destes componentes. O retorno deles é apenas a HTML.
Lembre-se que quando você utiliza esse componente para acessar um site, quem está acessando é o seu servidor, logo a SESSÃO é diferente da sua, como IP, etc...