Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I would open fiddler and see what requests were actually being sent to the server and what the responses are. It may also depend on how you are actually requesting (ie the path) and how you are serving the PDF. I demonstrate how to return password protected PDF documents in one of my WROX eBooks and in my handlers and modules presenation I do at user groups. <a href="http://professionalaspnet.com/archive/2008/08/10/CodeStock-Rocked_2100_.aspx" rel="nofollow noreferrer">http://professionalaspnet.com/archive/2008/08/10/CodeStock-Rocked_2100_.aspx</a> (link to download the code on the page).</p> <p>Here is the code I use to return a PDF using a Handler, it might help you out.</p> <pre><code> 'First run the supplied filename through a URL decoder to change any URL 'characters back to their normal selves. sDocument = HttpUtility.UrlDecode( _ Path.GetFileName(context.Request.Url.ToString)) 'Now build a full physical path to the file on the server. sDocument = Path.Combine(Path.Combine( _ context.Request.PhysicalApplicationPath, "PDF"), sDocument) 'Verify we actually have the file to serve. If File.Exists(sDocument) = False Then context.Server.Transfer("badpdf.aspx") End If 'The next two sections are from Scott Hanselman's blog, but seem to be out of date, 'since it was posted in 2003 'http://www.hanselman.com/blog/InternetExplorerAndTheMagicOfMicrosoftKBArticleQ293792.aspx 'This is done to support older browsers that were not as efficient 'at managing document requests. If InStr(1, context.Request.UserAgent, "contype") &gt; 0 Then 'Just send the mime/type Response.ContentType = "application/pdf" Response.End() Exit Sub End If Dim Language As String = context.Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") If String.IsNullOrEmpty(Language) Then Response.Clear() Response.ContentType = "application/pdf" Response.AddHeader("Last-modified", "Mon, 01 Sep 1997 01:03:33 GMT") Response.Status = "304 Not Modified" Response.End() Exit Sub End If 'Set the Cacheability Response.Cache.SetCacheability(HttpCacheability.Public) Response.Cache.SetExpires(DateTime.MinValue) Response.ContentType = "application/pdf" 'This opens the Open/Save Dialog Response.AddHeader("Content-Disposition", "attachment; filename=" &amp; _ Path.GetFileName(sDocument)) 'This Bypasses the Open/Save Dialog 'Response.AddHeader("Content-Disposition", "inline; filename=" &amp; _ ' Path.GetFileName(sDocument)) If File.Exists(sDocument) Then 'Write the file to the Response Output stream without buffering. 'This is new to ASP.NET 2.0. Prior to that use WriteFile. Response.TransmitFile(sDocument) Response.End() End If </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload