在我的网站中,我使用ABCpdf从HTML动态生成pdf。 我有两个条件:
我的代码是这样的:
string url = HttpContext.Current.Request.Url.AbsoluteUri;
Doc theDoc = new Doc();
theDoc.AddImageUrl(url);
theDoc.Save(HttpContext.Current.Server.MapPath("~/media/pdf/1212.pdf"));
theDoc.Clear();
现在问题是这样的,我可以在用户登录时看到第一页但是在绘制PDF时它包含未登录的页面(第二页)。
我使用inproc会话模式来存储我的登录详细信息。据我所知,即使用户已登录,当此代码执行时,服务器返回未登录的页面,获取HTML以呈现PDF的请求不会延续会话,但会创建一个新的。
任何人都能给我任何线索吗?
答案 0 :(得分:1)
原因可能是ABCPdf在呈现HTML时的工作方式是访问要呈现的页面的用户不是,但是服务器和服务器没有用户登录会话,它将像访问页面一样访问页面您只需在服务器上的浏览器中键入URL即可。因此,当您通过ABCpdf访问该页面时,它将表现为用户未登录。
我过去克服此问题的方法是将加密的查询字符串pram传递给页面,并在PDF呈现页面上检查这一点,并根据该pram值更改显示的结果。