我有一个 aspx 页面,请参阅:
<%@ Page Language="C#" %>
<%
HttpContext.Current.Session["UserID"] = "ABC1";
Response.Write(HttpContext.Current.Session["UserID"].ToString());
%>
<script>
var parameters = { OpenURL: "test.pdf", java_arguments: "-Xmx256m" };
var attributes = {archive:"webviewerS.jar,jPDFViewerS.jar", code:"qoppa.webViewer.PDFWebViewer", width:"100%", Height:"95%"};
var version = "1.6.0";
deployJava.runApplet(attributes, parameters, version);
</script>
页面加载并创建了一个会话变量,我还添加了一个自定义 httphandler 来处理 pdf 的 http 请求,每个用户输入带有 .pdf 的路径都会运行该类
response.Cookies["UserID"].HttpOnly = false;
if (HttpContext.Current.Session["UserID"] != null)
{
response.ContentType = "application/pdf";
response.WriteFile(request.PhysicalPath);
}
else
{
response.Write("access denied");
}
此脚本的主要测试目标是只能通过使用该 aspx 页面中的 java 小程序来查看 pdf。但最后,
var 参数 = { OpenURL:“ test.pdf ”,java_arguments:“-Xmx256m”};
java小程序请求加载pdf,但似乎无法在httphandler处检测到会话,但是如果我在加载.aspx页面后直接键入.pdf路径,则上面的代码是成功的。
如果applet请求pdf文件,seesion["UserID"]的结果为null,为什么检测不到session值?