Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以将会话从HttpWebResponse传输到浏览器?_C#_Asp.net_Vb.net_Wcf_Session - Fatal编程技术网

C# 是否可以将会话从HttpWebResponse传输到浏览器?

C# 是否可以将会话从HttpWebResponse传输到浏览器?,c#,asp.net,vb.net,wcf,session,C#,Asp.net,Vb.net,Wcf,Session,我需要找到某种方法以下一个顺序传递会话值: WebApp1(WebForms)->WCF->WebApp2(WebForms/浏览器) 原因是WCF服务必须在请求到达WebApp2/Browser之前验证该请求 基本上,我需要通过WCF获取HTML和会话,然后将它们传递给WebApp2中的Iframe 我有下一个代码: WebApp1: -Default.aspx Public Class _Default Inherits Page Protected Sub Page_Lo

我需要找到某种方法以下一个顺序传递会话值:

WebApp1(WebForms)->WCF->WebApp2(WebForms/浏览器)

原因是WCF服务必须在请求到达WebApp2/Browser之前验证该请求

基本上,我需要通过WCF获取HTML和会话,然后将它们传递给WebApp2中的Iframe

我有下一个代码:

WebApp1:

-Default.aspx

Public Class _Default
    Inherits Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

        Dim pUser As String = Request.QueryString("user")

        If Not String.IsNullOrEmpty(pUser) Then
            System.Web.HttpContext.Current.Session("user") = pUser
        End If

        Dim user As String = System.Web.HttpContext.Current.Session("user")

        If String.IsNullOrEmpty(user) Then
            Response.Write("sesion no iniciada")
        Else
            Dim a As String = "<a href='http://localhost:64852/About.aspx'>ir a otra pagina</a>"
            Response.Write(String.Format("{0} ha iniciado sesion {1} pagina 1", user, a))
        End If
    End Sub
End Class
-函数Utilities.Net.getHttpStream

Friend Shared Function getHttpStream(ByVal url As String, ByVal method As String, Optional ByVal request As String = "", Optional ByVal contentType As String = "") As System.IO.Stream

    url = "http://localhost:64852/Default.aspx?user=diego"
    Dim ba As Byte() = Encoding.Default.GetBytes(request)
    Dim lg As Integer = ba.Length
    Dim rq As HttpWebRequest = HttpWebRequest.Create(url)
    Dim cookies As New CookieContainer()

    With rq
        .ContentType = contentType
        .Method = method
        .Proxy = New WebProxy()
        .ContentLength = lg
        .CookieContainer = cookies
    End With

    If method <> "GET" Then
        Dim qs As Stream = rq.GetRequestStream()
        qs.Write(ba, 0, lg)
        qs.Flush()
        qs.Close()
    End If

    Dim qr As Stream

    Dim response As HttpWebResponse = rq.GetResponse()
    response.Cookies = cookies.GetCookies(rq.RequestUri)
    qr = response.GetResponseStream()

    Return qr
End Function
问题是返回纯文本(没有HTML)而没有任何会话

Public Function abrirAplicacion(ByVal url As String, ByVal idPermiso As String, ByVal lenguaje As String) As System.IO.Stream Implements IServiceAAM.abrirAplicacion

    Dim r As String = url & "idPermiso=" & idPermiso & "&lang=" & lenguaje

    Return Utilities.Net.getHttpStream(r, "GET")
    'WebOperationContext.Current.OutgoingResponse.ContentType = "text/html"
End Function
Friend Shared Function getHttpStream(ByVal url As String, ByVal method As String, Optional ByVal request As String = "", Optional ByVal contentType As String = "") As System.IO.Stream

    url = "http://localhost:64852/Default.aspx?user=diego"
    Dim ba As Byte() = Encoding.Default.GetBytes(request)
    Dim lg As Integer = ba.Length
    Dim rq As HttpWebRequest = HttpWebRequest.Create(url)
    Dim cookies As New CookieContainer()

    With rq
        .ContentType = contentType
        .Method = method
        .Proxy = New WebProxy()
        .ContentLength = lg
        .CookieContainer = cookies
    End With

    If method <> "GET" Then
        Dim qs As Stream = rq.GetRequestStream()
        qs.Write(ba, 0, lg)
        qs.Flush()
        qs.Close()
    End If

    Dim qr As Stream

    Dim response As HttpWebResponse = rq.GetResponse()
    response.Cookies = cookies.GetCookies(rq.RequestUri)
    qr = response.GetResponseStream()

    Return qr
End Function
Dim st As System.IO.Stream = oClient.abrirAplicacion(url, Server.UrlEncode(Encrypt(pIdPermiso)), lenguaje)
oClient.Close()

'IframeApp.Attributes("src") = url & "idPermiso=" & Server.UrlEncode(Encrypt(pIdPermiso)) & "&lang=" & lenguaje
'IframeApp.Attributes("height") = listSistema.First.tamano
Dim str As New System.IO.StreamReader(st)
IframeApp.Attributes("srcdoc") = str.ReadToEnd()