-1

Any server based (not occurring on localHost) IIS loses the session because new windows are started under new processes - "per google search results"

In my case I'm using Session("fileData") = fileData

this is how i redirect my page

Page.ClientScript.RegisterStartupScript(Me.GetType(), "OpenPDFScript", "window.open('OpenPDFNewWindowHandler.ashx', '_blank');", True)

Instead of saving my fileData to a session variable, can i pass it as a parameter to the generic handler? Or maybe their is a better way?

Don Thomas Boyle
  • 3,055
  • 3
  • 32
  • 54

1 Answers1

0

Okay so, the other option is probably better due to not sending a full file, but...

On your front end:

<% var a = new byte[] { 1, 1, 2, 3, 5, 8 };  %>
<script>
    var data = "<% Response.Write(Convert.ToBase64String(a)); %>";
    function openhandler() {
        var f = document.createElement("form");
        f.method = "post";
        f.action = "Handler1.ashx";
        f.target = "Handler1Window";
        var i = document.createElement("input");
        i.name = "data";
        i.value = data;
        f.appendChild(i);
        f.style.position = "absolute";
        f.style.display = "block";
        f.style.width = "0px";
        f.style.height = "0px";
        f.style.overflow = "hidden";
        document.body.appendChild(f);
        f.submit();
    }
</script>

And in your handler:

public void ProcessRequest(HttpContext context)
    {
        var bytes = Convert.FromBase64String(context.Request.Form["data"]);
        context.Response.ContentType = "text/plain";
        context.Response.Write(String.Join(",", bytes));
    }
Chris Carew
  • 1,398
  • 10
  • 6