1

ASP.NETで開発された、50の異なるPDFファイルへのリンクを含むWebサイトがあります。ウェブサイトにも認証機能があります。これで、ユーザーが特定のファイルをダウンロードするときに、データベースにユーザー名とファイル名を入力する必要があります。これを実現する方法を教えてください。PS:pdfアイコンを使ってみsessionvariableましonclickeventたが、50を超えるpdfファイルには面倒です。

4

3 に答える 3

2

ダウンロードハンドラーを作成する必要があります。サーバー上の物理ファイルをループするか、それらをある種のデータベースにコーディングすることができます。

そのハンドラー内に、「クリック」機能を記録するためのメソッドが必要になります。
注:これはキャンセルされたダウンロードを考慮しません。

マークアップ

<asp:HyperLink id="hyperlink1" ... />

コードビハインド

hyperlink1.NavigateUrl = "Downloader.ashx?file="+"filename";

ハンドラ

<%@ WebHandler Language="C#" Class="Downloader" %>

using System;
using System.Web;

public class Downloader : IHttpHandler {

    public void ProcessRequest (HttpContext context) {

        // create a file response
        HttpResponse r = context.Response;
        r.ContentType = // set the appropriate content type;

        string file = context.Request.QueryString["file"];

        // *****
        // LOG THE REQUEST
        // *****

        // write out the file
        r.WriteFile(...);
    }

    public bool IsReusable {
        get {
            return false;
        }
    }
}
于 2012-09-06T05:08:10.107 に答える
1

すべてのドキュメントを要求するために使用されるhttpハンドラーを作成できます。

たとえば、ページに配置するリンクは次のようになりますhttp://yoursite/pdf?name=MyFancyPDf

ハンドラーでは、PDFに必要な処理(ロギングを含む)を実行して、ユーザーに提供することができます。

于 2012-09-06T05:07:02.303 に答える
0

ダウンロードするファイルを取得するためのhttpHandlerを作成します。これにより、ファイルへの直接リンクを抽象化し、特定のファイルを保護し、ファイルをクリックしたユーザーをデータベースに保存して、ファイルシステムの任意の場所にファイルを保存できるようになります。 、つまり、セキュリティを強化するためにこれらの直接リンクを作成しないでください)

于 2012-09-06T05:06:57.550 に答える