Ho questo problema, da una prima pagina asp.net (che risiede su un server A) invio dei dati ad una seconda pagina asp.net (che risiede su un server diverso diciamo B) in modalità post con il seguente codice:
Dim richiesta As HttpWebRequest
Dim risposta As HttpWebResponse
Dim PostTMP As Stream
Dim RetTMP As System.IO.StreamReader
Dim encoding As New Text.UTF8Encoding
Dim Post As Byte()
Dim _Risposta as String
Try
' Faccio la richiesta
richiesta = HttpWebRequest.Create(strURL)
richiesta.Method = "POST"
richiesta.ContentType = "application/x-www-form-urlencoded"
richiesta.KeepAlive = True
Post = encoding.GetBytes(strPOST)
richiesta.ContentLength = Post.Length
PostTMP = richiesta.GetRequestStream()
PostTMP.Write(Post, 0, Post.Length)
PostTMP.Close()
' Ottengo la risposta
risposta = richiesta.GetResponse()
RetTMP = New System.IO.StreamReader(risposta.GetResponseStream( ))
_Risposta = RetTMP.ReadToEnd()
_InEsecuzione = False
Return _Risposta
Catch ex As Exception
_InEsecuzione = False
Return ex.Message
End Try
La pagina numero due posta sul server B riceve perfettamente i dati e crea un oggetto della classe utente che salva nella session, grazie ad una proprietà della classe Common:
Public Shared Property Utente() As ClsUtente
Get
Return HttpContext.Current.Session("utente")
End Get
Set(ByVal value As ClsUtente)
HttpContext.Current.Session("utente") = value
End Set
End Property
Ora la pagina due in questione rimanda ad una terza pagina posta all'interno dello stesso server B tramite:
Response.Redirect("prova.aspx" & "?" & Request.QueryString().ToString, False)
Nella terza pagina viene ripreso l'oggetto utente e qui sorge il problema perchè se controllo Common.utente è Nothing, verificata allora la sessione mi accorgo che nella terza pagina la sessione è cambiata...... come faccio a mantenere la medesima sessione? Anzi dovrebbe rimanere la stessa visto che faccio solo il redirect ad un'altra pagina....

Rispondi quotando