2

私のウェブサイトでは、HTML から動的に PDF を生成するためにABCpdfを使用しています。私には2つの条件があります:

  1. ユーザーがログインすると、1 ページ目が表示され、1 ページ目が PDF として描画されます
  2. ユーザーは、表示されているページ 2 と pdf として描画されたページ 2 にログインしていません。

私のコードは次のようなものです:

 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 が描画されると、ログインしていないページ (2 ページ目) が含まれます。

ログインの詳細を保存するためにインプロセス セッション モードを使用しています。私が理解している限り、ユーザーがログインしていても、このコードを実行すると、ログインしていないページが返され、PDF をレンダリングするための HTML を取得する要求がセッションを引き継ぐのではなく、新しいセッションが作成されます。

誰でも手がかりを教えてもらえますか?

4

1 に答える 1

1

その理由は、HTML をレンダリングするときに ABCPdf が動作する方法は、レンダリングするページにアクセスするのはユーザーではなく、サーバーとサーバーにはユーザーのログイン セッションがなく、入力したかのようにページにアクセスするためである可能性があります。サーバー上のブラウザーの URL。したがって、ABCpdf 経由でページにアクセスすると、ユーザーがログインしていないかのように動作します。

過去にこの問題を克服した方法は、暗号化されたクエリ文字列 pram をページに渡し、PDF レンダリング ページでこれを確認し、その pram 値に基づいて表示される結果を変更することです。

于 2013-01-09T11:29:16.280 に答える