0

いくつかのファイル(pdf、word、xls、これらのファイルなど)をダウンロードするためのWebサイトを作成したいのですが、各ファイルにはpiceがあります。たとえば、a.pdfは10 $、b.pdfidは20$です。たとえば、usern"x"には12$がありますが、このユーザーがファイルb.pdfをダウンロードできないようにするにはどうすればよいですか?提案をお願いします。あなたは私がフォルダにアクセスするための役割をhqveできるメンバーシップシステムを持つことができることを知っていますが、ファイルはどうですか?または、ファイルごとにオンライン価格を支払うことができるユーザーを登録する必要はないと思います。たとえば、a.pdfを選択すると、paypalなどに接続して支払います。支払いを行うと、リンクが表示されますが、どうでしょうか。ユーザーがリンクをコピーして友達に送信した場合はどうなりますか?ありがとうございました

4

4 に答える 4

5

ファイルをWebルートから外す必要があります(URLからアクセスできないようにするため)。

次に、ファイル名を取得し、ログインしたユーザーがアクセスを許可されているかどうかを確認し、アクセスが許可されている場合は、を呼び出してファイルを返すASHXファイルまたはMVCアクションを記述できますResponse.TransmitFile

于 2012-06-12T13:17:38.397 に答える
2

ファイルIDをGETパラメーターとして受け入れるページを作成し、コードビハインドでそれらのバランスをチェックすることができます。

于 2012-06-12T13:16:53.637 に答える
2

このために、SLaksが提案するように、汎用ハンドラーを使用します。[新規追加]-> [汎用ハンドラー(.ashx)ファイル]。次に、ハンドラークラスで:

public class CustomImageHandler : IHttpHandler
{
        public void ProcessRequest(HttpContext context)
        {
            //Get file name from query string and check balance for that file extension... read the file into aStream

            context.Response.Clear();
            context.Response.ContentType = "image/...";
            context.Response.AddHeader("Content-Disposition", string.Format("attachment; filename=\"{0}\"", GetTheFileName()));
            context.Response.BinaryWrite(aStream.ToArray());
        }
}

次に、画像のハイパーリンクは次のとおりです。

http://yourdomain.path/../CustomImageHandler.ashx?filename=file1.pdf

于 2012-06-12T13:28:42.430 に答える
0

トランザクションが正常に完了したときに取得したと思います。trueが返され、戻り値がtrueであるかどうかを確認して、ファイルcqnを現在のユーザーにダウンロードできます。あなたの助けをありがとう:x

于 2012-06-12T13:24:18.640 に答える