私は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>
ページが読み込まれ、セッション変数が作成されました。また、pdfのhttpリクエストを処理するカスタムhttphandlerも追加しました。すべてのユーザーが、.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 parameters = {OpenURL: " test.pdf "、java_arguments: "-Xmx256m"};
pdfをロードするJavaアプレット要求がありますが、セッションはhttphandlerで検出できなかったようですが、.aspxページをロードした後に.pdfパスを直接入力すると、上記のコードは成功します。
アプレットがpdfファイルを要求した場合、seesion ["UserID"]の結果はnullになりますが、なぜセッション値を検出できないのでしょうか。